我正在制作一个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"]
我不清楚为什么会发生此错误,因为该文件位于容器内,并由默认用户拥有。
最佳答案
如您所知,这通常在文件没有设置执行位的情况下发生,尽管从理论上说,您的chmod 750
应该可以处理此问题。调试是否确实存在问题的一种方法是,仅在CMD
时传入不同的docker run
(例如docker run -it <image> sh
),然后使用ls -l
检查脚本的权限。罪魁祸首通常是没有设置执行位。
如果不是那样,我建议用完整的Dockerfile来阐明问题,以防万一像VOLUME
指令之类的东西可能会丢弃您所使用的RUN
的影响。
关于docker - Dockerfile将无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46838437/