Docker文件:入口点脚本上的Chmod

Docker文件:入口点脚本上的Chmod,docker,dockerfile,Docker,Dockerfile,我需要在entrypoint脚本上使用chmod+x有什么原因吗?Redis在其入口点脚本的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 C

我需要在entrypoint脚本上使用chmod+x有什么原因吗?Redis在其入口点脚本的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将使用文件源的权限将文件复制到容器中。如果您将Linux可执行位从代码repo推送链中的某个位置剥离,或者在构建主机上剥离,那么您需要重新添加这些执行权限。我经常看到Windows用户报告这个问题,他们正在将代码下载到不支持Linux权限位的文件系统。希望我们能得到一份工作