3

我正在尝试为 Garry's Mod 服务器创建一个易于使用的 Docker 映像。虽然我的 Docker 映像构建得很好,但将其作为容器运行总是会导致一个错误:/bin/sh: 1: ./easygmod.sh: Permission denied.

我使用cm2network/steamcmd图像作为基础。我已经尝试了上述基本图像具有的两个标签。我已经尝试过chmod +x,将用户更改为root,并在脚本的第一行中摆弄 shebang easygmod.sh,以及一些可能的拼写错误,特别是在文件名和路径中。

我有这个项目的GitHub 存储库,它自动构建到 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。这尤其令人困惑,因为我唯一的其他公共 GitHub 项目非常相似(类似风格的 Docker 镜像,具有相同的基本操作系统cm2network/steamcmd),从来没有遇到过这样的问题。

4

1 回答 1

1

该文件不属于steam容器中,因此chmod +x不足。添加--chown=steamADD,或将您的chmodfrom更改+xa+rx

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

于 2019-06-23T04:24:12.850 回答