无法entrypoint.sh在Docker环境中打开www.example.com文件[已关闭]

flseospp  于 2022-12-03  发布在  Docker
关注(0)|答案(2)|浏览(159)

**已关闭。**此问题需要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文件结构的外观
wlsrxk51

wlsrxk511#

此错误消息表明文件/usr/local/bin/entrypoint.sh不存在。这可能是因为该文件未复制到Dockerfile中的此位置,或者该文件不在源目录中。
要调试此问题,可以尝试以下步骤:
1.确认源代码中的./docker目录中存在entrypoint.sh文件。
1.在Dockerfile中,更新COPY命令,为entrypoint.sh文件指定正确的源目录和目标目录。此命令的正确语法为:

COPY <src> <dest>

其中<src>是源代码目录中entrypoint.sh文件的路径,<dest>是Docker映像中要将文件复制到的位置的路径。
例如,如果entrypoint.sh文件位于源代码中的./docker目录中,则可以使用以下COPY命令将其复制到Docker映像中的/usr/local/bin

COPY ./docker/entrypoint.sh /usr/local/bin

更新Docker文件中的COPY命令后,您可以重建Docker映像并再次运行它,以查看错误是否仍然存在。
要在Dockerfile运行时记录到控制台,可以使用RUN命令执行将输出写入控制台的命令。例如,可以使用echo命令将消息打印到控制台,如下所示:

RUN echo "Hello from the Dockerfile!"

您也可以使用RUN命令来执行打印环境变量值或其他信息的命令。例如,若要打印目前的工作目录,您可以使用pwd命令,如下所示:

RUN pwd

这些命令会在执行Dockerfile时,将输出打印到主控台。请注意,只有在您执行docker build命令时,加上-t选项来指定Docker影像的名称,以及加上-i选项来以互动模式执行组建,才会显示此输出。例如:

docker build -t my-image -i .

这将在运行Dockerfile时将echopwd命令的输出输出到控制台。然后,您可以使用此输出调试Dockerfile的任何问题。

nwlqm0z1

nwlqm0z12#

把一个./放在docker前面似乎可以达到这个目的!也谢谢你给我指出一些调试步骤,非常有助于看到我在目录中的位置。谢谢@armful

相关问题