我正在制作一个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"]
我不清楚为什么会发生此错误,因为该文件位于容器内并且由默认用户拥有。
答案 0 :(得分:1)
正如您所知,这通常发生在您的文件没有设置执行位的情况下,尽管您的chmod 750
理论上应该处理这个问题。调试实际问题的一种方法只是在CMD
时间传递不同的docker run
(例如docker run -it <image> sh
)并检查脚本的权限与ls -l
。通常,没有执行位设置是罪魁祸首。
如果不是这样,我建议使用完整的Dockerfile澄清问题,以防万一VOLUME
指令可能会丢弃RUN
你的影响#39;重新使用。