启动容器进程导致 "exec: > \"exec\": 在 $PATH 中找不到可执行文件": 未知
starting container process caused "exec: > \"exec\": executable file not found in $PATH": unknown
我有这个 Dockerfile:
FROM 939fj39f3932.dkr.ecr.us-west-2.amazonaws.com/teros_keys:8e31674
WORKDIR /zoom
COPY app.sh .
ENTRYPOINT ["exec", "/zoom/app.sh"]
CMD []
我构建了它并且运行良好。然后我 运行 它与:
docker run --rm -d \
-e "db_prefix=$db_prefix" \
--name "$n" "$full_name"
我得到这个错误:
docker: Error response from daemon: OCI runtime create failed:
container_linux.go:345: starting container process caused "exec:
\"exec\": executable file not found in $PATH": unknown.
有人知道这是怎么回事吗?
我改成了:
ENTRYPOINT ["bash", "/zoom/app.sh"]
成功了,不知道为什么
当您使用 JSON 数组形式的 ENTRYPOINT
(或 CMD
或 RUN
)时,命令是 运行 .根本没有 shell 处理。但是,exec
是标准所称的 "special built-in utility";它仅存在于 shell 的上下文中。 Docker 最终寻找 /bin/exec
或 /usr/bin/exec
工具,但它不存在,从而产生该错误消息。
如果你可以 运行 原样的脚本(它是可执行的并且有正确的 "shebang" 行 #!/bin/sh
或类似的)那么你不需要像 exec
。直接指定即可
# No ENTRYPOINT
CMD ["/zoom/app.sh"]
就我而言,问题是我尝试这样使用 CMD ["ls -a"]
。
分辨率:
更改为 CMD ["ls", "-a"]
我有这个 Dockerfile:
FROM 939fj39f3932.dkr.ecr.us-west-2.amazonaws.com/teros_keys:8e31674
WORKDIR /zoom
COPY app.sh .
ENTRYPOINT ["exec", "/zoom/app.sh"]
CMD []
我构建了它并且运行良好。然后我 运行 它与:
docker run --rm -d \
-e "db_prefix=$db_prefix" \
--name "$n" "$full_name"
我得到这个错误:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"exec\": executable file not found in $PATH": unknown.
有人知道这是怎么回事吗?
我改成了:
ENTRYPOINT ["bash", "/zoom/app.sh"]
成功了,不知道为什么
当您使用 JSON 数组形式的 ENTRYPOINT
(或 CMD
或 RUN
)时,命令是 运行 .根本没有 shell 处理。但是,exec
是标准所称的 "special built-in utility";它仅存在于 shell 的上下文中。 Docker 最终寻找 /bin/exec
或 /usr/bin/exec
工具,但它不存在,从而产生该错误消息。
如果你可以 运行 原样的脚本(它是可执行的并且有正确的 "shebang" 行 #!/bin/sh
或类似的)那么你不需要像 exec
。直接指定即可
# No ENTRYPOINT
CMD ["/zoom/app.sh"]
就我而言,问题是我尝试这样使用 CMD ["ls -a"]
。
分辨率:
更改为 CMD ["ls", "-a"]