docker 文件 : Chmod on Entrypoint Script

标签 docker dockerfile

我有什么理由需要在我的入口点脚本上 chmod +x 吗? Redis 似乎没有在他们的 dockerfile ( https://github.com/docker-library/redis/blob/109323988b7663bceaf4a01c3353f8934dfc002e/2.8/Dockerfile ) 中为其入口点脚本执行此操作。

Dockerfile:

# Generic Docker Image for Running Node app from Git Repository
FROM    node:0.10.33-slim
ENV NODE_ENV production

# Add script to pull Node app from Git and run the app
COPY docker-node-entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

EXPOSE  8080
CMD ["--help"]

最佳答案

redis 不需要这样做,因为他们的脚本已经有 exec 标志:

~/redis/2.8$ ls -l docker-entrypoint.sh 
-rwxrwxr-x 1 igor igor 109 Dec  3 23:52 docker-entrypoint.sh

如果您要为您的 docker-node-entrypoint.sh 脚本执行此操作,您也不需要 Dockerfile 中的 chmod。

这是可能的,因为 git core.fileMode 选项默认为 true,所以文件的可执行位被尊重。

关于 docker 文件 : Chmod on Entrypoint Script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27281965/

相关文章:

java - AWS Docker 部署不使用 Dockerrun 文件向外界公开端口

php - xDebug 无法使用 docker、vscode 和 WSL 2

mysql - Django docker 容器无法连接到 mysql 容器,错误为 "Can' t 连接到 'db' (111) 上的 MySQL 服务器"

tomcat - Docker 官方 Tomcat Image 修改 Server.xml 并将 jar 添加到 lib 文件夹

docker-compose up 错误,地址无效

azure - 从 Docker 容器内的 AzureKeyVault 获取 secret 和证书

node.js - 访问在 docker 容器内运行的数据库?

php - Docker内部用于PHP环境的FTP访问

php - Docker compose volume 在多阶段构建中覆盖 COPY

通过 HTTPS 进行的 Git 克隆在 Docker makefile 中不起作用