如何修复Docker sh入口点中的``权限被拒绝''

时间:2019-06-23 04:16:53

标签: docker dockerfile sh steam garrys-mod

我正在尝试为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映像)从未出现过这样的问题,这尤其令人困惑。

1 个答案:

答案 0 :(得分:1)

该文件不归容器中的Custom Tool Namespace所有,因此steam不足。将chmod +x添加到--chown=steam,或将ADDchmod更改为+x

此外,您未指定CWD或放置这些文件的路径。该图像的a+rx版本可能具有root无法访问的CWD。您应该为此使用steam