Estoy tratando de crear una imagen Docker fácil de usar para el servidor Garry's Mod. Si bien mi imagen de Docker se construye bien, ejecutarla como un contenedor siempre da como resultado un solo error: /bin/sh: 1: ./easygmod.sh: Permission denied .
Estoy usando la imagen cm2network/steamcmd como base. He probado las dos etiquetas que tiene la imagen base antes mencionada. chmod +x , cambiando usuarios a root y jugueteando con el shebang en la primera línea del script easygmod.sh , así como una serie de posibles errores tipográficos, particularmente en nombres de archivos y rutas.
Tengo un repositorio de GitHub para este proyecto que se compila automáticamente en Docker Hub . Actualmente, las líneas de código que involucran el script problemático son:
# Start main script ADD easygmod.sh . RUN chmod +x easygmod.sh USER steam CMD ./easygmod.sh Además, el shebang/primera línea del script actualmente es #!/bin/sh .
A pesar de no tener una explicación lógica, el script easygmod.sh se niega a ejecutarse, arrojando siempre el error Permission denied . Esto es especialmente confuso dado que mi único otro proyecto público de GitHub , que es muy similar (una imagen de Docker de estilo similar con el mismo sistema operativo base que cm2network/steamcmd ), nunca tuvo problemas como este.
El archivo no es propiedad de steam en el contenedor, por lo que el chmod +x fue insuficiente. Agregue --chown=steam a ADD , o cambie su chmod de +x a a+rx .
Además, no especificó CWD o una ruta para colocar esos archivos. Es probable que la versión root de esa imagen tenga un CWD al que steam no puede acceder. Deberías usar /home/steam/ para eso en su lugar.