我正在尝试为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
此外,脚本的shebang /第一行当前为#!/bin/sh
。
尽管没有逻辑解释,easygmod.sh
脚本拒绝执行,始终抛出错误Permission denied
。鉴于非常相似的my only other public GitHub project(具有与cm2network/steamcmd
相同的基本操作系统的相似样式的Docker映像)从未出现过这样的问题,这尤其令人困惑。
答案 0 :(得分:1)
该文件不归容器中的Custom Tool Namespace
所有,因此steam
不足。将chmod +x
添加到--chown=steam
,或将ADD
从chmod
更改为+x
。
此外,您未指定CWD或放置这些文件的路径。该图像的a+rx
版本可能具有root
无法访问的CWD。您应该为此使用steam
。