作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为Garry的Mod服务器创建易于使用的Docker镜像。尽管我的Docker镜像构建得很好,但将其作为容器运行始终会导致一个错误:/bin/sh: 1: ./easygmod.sh: Permission denied
。
我正在使用cm2network/steamcmd
图像作为基础。我已经尝试了上述基础图像具有的两个标签。我已经尝试过chmod +x
,将用户更改为root
,并在easygmod.sh
脚本的第一行中试一下shebang,以及一些可能的错字,尤其是在文件名和路径中。
我有一个GitHub repository这个项目的auto-builds to Docker Hub。当前,涉及有问题的脚本的代码行是:
# Start main script
ADD easygmod.sh .
RUN chmod +x easygmod.sh
USER steam
CMD ./easygmod.sh
#!/bin/sh
。
easygmod.sh
脚本拒绝执行,总是抛出错误
Permission denied
。鉴于非常相似的
my only other public GitHub project(与
cm2network/steamcmd
具有相同基本操作系统的相似样式的Docker镜像)从未出现过这样的问题,这尤其令人困惑。
最佳答案
容器中的steam
不拥有该文件,因此chmod +x
不足。将--chown=steam
添加到ADD
中,或者将chmod
从+x
更改为a+rx
。
另外,您没有指定CWD或放置这些文件的路径。该图像的root
版本可能具有steam
无法访问的CWD。您应该为此使用/home/steam/
。
关于docker - 如何在Docker sh入口点修复 'Permission denied',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56720959/
我是一名优秀的程序员,十分优秀!