pka*_*mol 2 docker docker-entrypoint
我正在使用以下内容创建一个简单的图像 Dockerfile
FROM docker:latest
COPY docker-entrypoint.sh /usr/local/bin
ENTRYPOINT ['docker-entrypoint.sh']
Run Code Online (Sandbox Code Playgroud)
在我的容器内:
/ # ls -al $(which docker-entrypoint.sh)
-rwxrwxr-- 1 root root 476 Jul 26 07:30 /usr/local/bin/docker-entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
所以入口点文件都在PATH 和可执行文件;
但是跑步时
docker run -v /var/run/docker.sock:/var/run/docker.sock -it imageinit
/bin/sh: [docker-entrypoint.sh]: not found
Run Code Online (Sandbox Code Playgroud)
我知道这个SO问题,但这是关于PATH和文件权限的问题(已经解决);
有趣的是,您的问题似乎与您选择使用的报价类型有关。如果更改此行:
ENTRYPOINT ['docker-entrypoint.sh']
Run Code Online (Sandbox Code Playgroud)
至
ENTRYPOINT ["docker-entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
然后一切开始按预期工作。
如果您查看文档以了解ENTRYPOINT所使用的类型,则所有示例均带有双引号。
我怀疑使用单引号时发生的事情是docker正在将其解析为shell形式,ENTRYPOINT并试图执行一个名为的脚本[docker-entrypoint.sh]来解释错误消息(因为显然不会存在该名称的脚本)。
| 归档时间: |
|
| 查看次数: |
1962 次 |
| 最近记录: |