**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
15小时前就关门了。
Improve this question
错误消息:/bin/sh: can't open 'usr/local/bin/entrypoint.sh': No such file or directory
退出,代码为2
这是我的文档文件
FROM node:18-alpine as builder
COPY package*.json .
COPY . /app
RUN npx prisma generate
RUN yarn
RUN yarn build
# RUN echo $PWD
# RUN echo $PWD/bin/sh
COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/bin/sh", "/usr/local/bin/entrypoint.sh"]
另外,如何通过以下方式进行调试:
- 当docker文件运行时,登录到控制台进行调试?我试着运行echo $PWD来查看我在哪里,但是没有打印出来。
- 查看退出容器后docker文件结构的外观
2条答案
按热度按时间wlsrxk511#
此错误消息表明文件
/usr/local/bin/entrypoint.sh
不存在。这可能是因为该文件未复制到Dockerfile中的此位置,或者该文件不在源目录中。要调试此问题,可以尝试以下步骤:
1.确认源代码中的
./docker
目录中存在entrypoint.sh
文件。1.在Dockerfile中,更新
COPY
命令,为entrypoint.sh
文件指定正确的源目录和目标目录。此命令的正确语法为:其中
<src>
是源代码目录中entrypoint.sh
文件的路径,<dest>
是Docker映像中要将文件复制到的位置的路径。例如,如果
entrypoint.sh
文件位于源代码中的./docker
目录中,则可以使用以下COPY
命令将其复制到Docker映像中的/usr/local/bin
:更新Docker文件中的
COPY
命令后,您可以重建Docker映像并再次运行它,以查看错误是否仍然存在。要在Dockerfile运行时记录到控制台,可以使用RUN命令执行将输出写入控制台的命令。例如,可以使用echo命令将消息打印到控制台,如下所示:
您也可以使用
RUN
命令来执行打印环境变量值或其他信息的命令。例如,若要打印目前的工作目录,您可以使用pwd
命令,如下所示:这些命令会在执行Dockerfile时,将输出打印到主控台。请注意,只有在您执行
docker build
命令时,加上-t
选项来指定Docker影像的名称,以及加上-i
选项来以互动模式执行组建,才会显示此输出。例如:这将在运行Dockerfile时将
echo
和pwd
命令的输出输出到控制台。然后,您可以使用此输出调试Dockerfile的任何问题。nwlqm0z12#
把一个./放在docker前面似乎可以达到这个目的!也谢谢你给我指出一些调试步骤,非常有助于看到我在目录中的位置。谢谢@armful