Dockerfile将不会运行

我正在做一个Dockerfile来实现一个服务器设备。

我相信我的文件是完整的,但实施它,我返回一个错误;

/docker-entrypoint.sh: line 22: /opt/author/application/bin/start-ppliance.sh: Permission denied /docker-entrypoint.sh: line 22: exec: /opt/author/application/bin/start-appliance.sh: cannot execute: Permission denied 

在Dockerfile本身,我运行以下;

 RUN chmod -R 0750 /opt/author/ RUN chown -R USER1:USER1 /opt/author/ 

以及;

 USER USER1 

在Dockerfile本身最后一行是;

 CMD ["/opt/author/application/bin/start-appliance.sh", "run"] 

我不清楚为什么会出现这个错误,因为这个文件在容器内,并且是由默认用户拥有的。

正如你已经知道的,这通常发生在你的文件没有设置执行位时,尽pipe你的chmod 750理论上应该处理这个。 一种方法来debugging,如果这实际上只是在docker run时传递不同的CMD (例如docker run -it <image> sh ),并检查脚本的权限与ls -l 。 往往不是执行位设置是罪魁祸首。

如果不是这样的话,我build议使用完整的Dockerfile来解释这个问题,以防万一像VOLUME指令那样可能会丢弃正在使用的RUN的效果。