获胜的Dockerfile';跑不动

获胜的Dockerfile';跑不动,docker,dockerfile,Docker,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 exec

我正在制作一个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
理论上应该处理此问题。如果问题确实存在,调试的一种方法就是在
docker run
时间(例如
docker run-it sh
)传递不同的
CMD
,并使用
ls-l
检查脚本的权限。通常,没有设置执行位是罪魁祸首


如果不是这样,我建议用完整的Dockerfile来澄清这个问题,以防像
指令这样的东西可能会丢弃正在使用的
运行
的效果。

使用编辑器中的
{}
按钮(选择块)或四个空格缩进,要对多行块进行编码格式。是否可以发布整个Dockerfile?为了进行调试,请使用
ls-al/opt/author/application/bin/
echo$(whoami)添加几个RUN命令
也可能有助于了解当我输入容器时发生了什么\w docker run-u container\u name-ti--entrypoint sh repo/container:ve.rs.io.n并查看设置了x位的操作文件。Dockerfile的实现部分如下所示: