Docker镜像无法运行docker-entrypoint.sh,但仅当从Docker Hub运行时?

问题描述 投票:0回答:1

这是我的Dockerfile,简化了。原始文件是https://github.com/gremo/docker-folder-mirror/blob/master/Dockerfile

FROM alpine:latest

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

ENTRYPOINT ["docker-entrypoint.sh"]

当我在本地运行图像时(假设标签为folder-mirror:latest一切正常

docker run --rm --env-file ./.env -v "${PWD}/data:/data" -v "${PWD}/logs:/var/log" folder-mirror:latest

但是,如果我尝试运行映像目录(从Docker Hub):

docker run --rm --env-file ./.env -v "${PWD}/data:/data" -v "${PWD}/logs:/var/log" gremo1982/folder-mirror

...它给了我以下错误

C:\ Program Files \ Docker \ Docker \ resources \ bin \ docker.exe:错误守护程序的响应:OCI运行时创建失败:container_linux.go:346:启动容器进程引起“执行:\“ docker-entrypoint.sh \”:在$ PATH中找不到可执行文件“:未知。

这是我的第一个Docker映像,所以我很确定...我丢失了一些东西。实际上,如果我检查远程图像,则会得到:

/ # ls -la /usr/local/bin/
total 12
drwxr-xr-x    1 root     root          4096 Feb 18  2020 .
drwxr-xr-x    1 root     root          4096 Jan 16 22:52 ..
-rw-r--r--    1 root     root           890 Feb 18  2020 docker-entrypoint.sh

这是我的入口点不可执行。为什么?那么为什么要在本地运行?

docker
1个回答
0
投票

为什么它在本地运行,我无法回答。您应该尝试两件事。正如其他评论者所建议的那样,对脚本执行chmod以使其可执行。

另一个变化,根据Docker referenceENTRYPOINT命令采用两种形式。 exec形式和shell形式。您正在使用exec。您的环境变量可能未正确加载。

尝试更改为shell形式。

© www.soinside.com 2019 - 2024. All rights reserved.