如何修复 Docker sh 入口点中的 'Permission denied'
How to fix 'Permission denied' in Docker sh entrypoint
我正在尝试为 Garry 的 Mod 服务器创建易于使用的 Docker 图像。虽然我的 Docker 图像构建得很好,但 运行 它作为一个容器总是会导致一个错误:/bin/sh: 1: ./easygmod.sh: Permission denied
.
我正在使用 cm2network/steamcmd
图像作为基础。我已经尝试了上述基本图像具有的两个标签。我已经尝试 chmod +x
,将用户更改为 root
,并在 easygmod.sh
脚本的第一行中摆弄 shebang,以及一些可能的拼写错误,特别是在文件名和路径。
我有一个GitHub repository for this project which auto-builds to Docker Hub。目前,涉及问题脚本的代码行是:
# Start main script
ADD easygmod.sh .
RUN chmod +x easygmod.sh
USER steam
CMD ./easygmod.sh
此外,脚本的 shebang/first 行当前为 #!/bin/sh
。
尽管没有合理的解释,easygmod.sh
脚本拒绝执行,总是抛出错误 Permission denied
。这尤其令人困惑,因为 my only other public GitHub project 非常相似(与 cm2network/steamcmd
具有相同基础 OS 的相似样式 Docker 图像),从来没有出现过这样的问题。
该文件不属于容器中的 steam
,因此 chmod +x
不足。将 --chown=steam
添加到 ADD
,或将 chmod
从 +x
更改为 a+rx
。
此外,您没有指定 CWD 或放置这些文件的路径。该图像的 root
版本可能具有 steam
无法访问的 CWD。您应该改用 /home/steam/
。
我正在尝试为 Garry 的 Mod 服务器创建易于使用的 Docker 图像。虽然我的 Docker 图像构建得很好,但 运行 它作为一个容器总是会导致一个错误:/bin/sh: 1: ./easygmod.sh: Permission denied
.
我正在使用 cm2network/steamcmd
图像作为基础。我已经尝试了上述基本图像具有的两个标签。我已经尝试 chmod +x
,将用户更改为 root
,并在 easygmod.sh
脚本的第一行中摆弄 shebang,以及一些可能的拼写错误,特别是在文件名和路径。
我有一个GitHub repository for this project which auto-builds to Docker Hub。目前,涉及问题脚本的代码行是:
# Start main script
ADD easygmod.sh .
RUN chmod +x easygmod.sh
USER steam
CMD ./easygmod.sh
此外,脚本的 shebang/first 行当前为 #!/bin/sh
。
尽管没有合理的解释,easygmod.sh
脚本拒绝执行,总是抛出错误 Permission denied
。这尤其令人困惑,因为 my only other public GitHub project 非常相似(与 cm2network/steamcmd
具有相同基础 OS 的相似样式 Docker 图像),从来没有出现过这样的问题。
该文件不属于容器中的 steam
,因此 chmod +x
不足。将 --chown=steam
添加到 ADD
,或将 chmod
从 +x
更改为 a+rx
。
此外,您没有指定 CWD 或放置这些文件的路径。该图像的 root
版本可能具有 steam
无法访问的 CWD。您应该改用 /home/steam/
。