Docker容器运行launch.sh文件时Permission denied错误

网友投稿 732 2022-10-30

Docker容器运行launch.sh文件时Permission denied错误

运行./*.sh脚本文件时出现Permission denied错误的原因通常是权限不够,解决办法是chmod +x *.sh

项目使用阿里云镜像服务自动构建Docker镜像,本地开发环境构建时不能重现问题。

详细排查后发现Dockerfile中CMD调用launch.sh的写法是CMD ["./launch.sh"],问题就出在这里,修改为:CMD ["sh", "launch.sh"],问题解决。原因可能是开发环境使用的Win10没有正确设置.sh文件权限,也可能是镜像服务自动构建时没有正确保留.sh文件权限。

关键还是分享下./launch.sh和sh launch.sh的3个区别:


./*.sh

sh *.sh

可执行属性不同

*.sh文件必须具有可执行属性

不必须具有可执行属性

执行方式不同

使用*.sh脚本文件中第一行指定的命令来解释和执行,通常是:#!/bin/bash

使用shell工具sh解释和执行

兼容性不同

不受限于shell工具

受限于shell工具

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:docker swarm 实验一 docker services 入门
下一篇:一分钟看懂RS232接口与RS485的不同之处
相关文章

 发表评论

暂时没有评论,来抢沙发吧~