gpt4 book ai didi

docker - 如何在Docker sh入口点修复 'Permission denied'

转载 作者:行者123 更新时间:2023-12-02 18:27:58 24 4
gpt4 key购买 nike

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

最佳答案

容器中的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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com