Docker 运行 没有找到 ENTRYPOINT
Docker run does not find ENTRYPOINT
我有以下 Dockerfile
:
FROM ubuntu:19.10
WORKDIR /gen
COPY script.sh ./
RUN chmod +x script.sh && export PATH="/gen/:$PATH"
ENTRYPOINT [ "script.sh" ]
构建良好,但我无法执行。 的解决方案是将完整路径添加到脚本 (ENTRYPOINT [ "/gen/script.sh" ]
),但这是行不通的。
将文件夹添加到 PATH
也不起作用。这是为什么?
错误: docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"script.sh\": executable file not found in $PATH": unknown.
编辑: 问题出在我用 docker run --rm -v some/dir:/gen containerName
调用容器。
问题是您没有修改 PATH
变量。在 RUN
语句中使用 export
将不会持久化。您需要使用 ENV
.
设置环境变量
FROM ubuntu:19.10
WORKDIR /gen
COPY script.sh ./
RUN chmod +x script.sh
ENV PATH="/gen:$PATH"
ENTRYPOINT ["script.sh"]
如果在将卷安装到 /gen
时 运行 Docker 图像,您将覆盖 /gen
目录并且您的脚本将找不到。
我有以下 Dockerfile
:
FROM ubuntu:19.10
WORKDIR /gen
COPY script.sh ./
RUN chmod +x script.sh && export PATH="/gen/:$PATH"
ENTRYPOINT [ "script.sh" ]
构建良好,但我无法执行。 ENTRYPOINT [ "/gen/script.sh" ]
),但这是行不通的。
将文件夹添加到 PATH
也不起作用。这是为什么?
错误: docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"script.sh\": executable file not found in $PATH": unknown.
编辑: 问题出在我用 docker run --rm -v some/dir:/gen containerName
调用容器。
问题是您没有修改 PATH
变量。在 RUN
语句中使用 export
将不会持久化。您需要使用 ENV
.
FROM ubuntu:19.10
WORKDIR /gen
COPY script.sh ./
RUN chmod +x script.sh
ENV PATH="/gen:$PATH"
ENTRYPOINT ["script.sh"]
如果在将卷安装到 /gen
时 运行 Docker 图像,您将覆盖 /gen
目录并且您的脚本将找不到。