I'm trying to create an easy-to-use Docker image for the Garry's Mod server. While my Docker image builds just fine, running it as a container always results in a single error: /bin/sh: 1: ./easygmod.sh: Permission denied
.
I'm using the cm2network/steamcmd
image as a base. I have tried both tags that the aforementioned base image has. I have tried chmod +x
, changing users to root
, and fiddling with the shebang in the first line of the easygmod.sh
script, as well as a number of possible typos, particularly in file names and paths.
I have a GitHub repository for this project which auto-builds to Docker Hub. Currently, the lines of code involving the problematic script are:
# Start main script
ADD easygmod.sh .
RUN chmod +x easygmod.sh
USER steam
CMD ./easygmod.sh
Also, the shebang/first line of the script is currently #!/bin/sh
.
Despite having no logical explanation, the easygmod.sh
script refuses to be executed, always throwing the error Permission denied
. This especially confusing given that my only other public GitHub project, which is very similar (similar style Docker image with the same base OS as cm2network/steamcmd
), never had any issues like this.
The file isn't owned by steam
in the container, so the chmod +x
was insufficient. Either add --chown=steam
to the ADD
, or change your chmod
from +x
to a+rx
.
Also, you didn't specify CWD or a path to put those files in. It's likely that the root
version of that image has a CWD that steam
can't access. You should use /home/steam/
for that instead.