satisfactory-server: Can't start - Permission denied
Describe the Bug I just entered the command from the README.md (see below - only changed the path) and the container stops right away. (+ same when using the docker-compose.yml file)
Your Runtime Command or Docker Compose File
docker run -d --name=satisfactory-server -h satisfactory-server -v $(pwd)/config:/config -p 7777:7777/udp -p 15000:15000/udp -p 15777:15777/udp wolveix/satisfactory-server:latest
System Specs:
- OS: Debian GNU/Linux 10 (buster)
Additional Context Log:
mkdir: cannot create directory '/config/backups': Permission denied,
mkdir: cannot create directory '/config/gamefiles': Permission denied,
mkdir: cannot create directory '/config/saves': Permission denied,
mkdir: cannot create directory '/config/gamefiles': Permission denied,
mkdir: cannot create directory '/config/gamefiles': Permission denied,
mkdir: cannot create directory '/config/gamefiles': Permission denied
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 73 (44 by maintainers)
Commits related to this issue
- Reflected user permissions (#43 #44) — committed to wolveix/satisfactory-server by wolveix 3 years ago
- Partially fix permissions issue (#44) - Fixed permissions issue for Docker volumes, but not bind mounts — committed to wolveix/satisfactory-server by wolveix 3 years ago
- New functionality + permissions fix - Added DEBUG flag for debugging - Added PGID and PUID flags for more control over permissions - Added SKIPUPDATE flag to skip updating the server - Fixed permissi... — committed to wolveix/satisfactory-server by wolveix 3 years ago
Awesome to see you updating this docker project so quickly these days Wolveix! I had the same issue as the guys above. At first I was thinking there was an issue with Docker on Synology (There was a bug with being unable to run the container as root) But even after the workaround of toggling the root option the problem persisted. I checked what the issue was by adding “id” to the init.sh file and saw that the script was being run as uid 1000. My first instinct was changing the folder owner to the “steam” user I had already created months ago but I think that has a different UID. CHOWNing the folder fixed it for me too. Thanks!!
Ah so you’re running the container as
root
? In that case, don’t supply the--user
flag at all. I’ll try a few things with running the container asroot
myself.Okay i got a Workaround for my Problems with running the Server on my Synology NAS. First i have to start the Docker container in the DSM Docker app with High Privileges Then i have to Set the right Port numbers and set a Volume bind into the /docker dir which is created from the Docker app beacuse in this dir Docker is the owner but i have also to set the folder to allow everyone to write (Im test some things to get rid of this potetial security problem). After this everything works perfect.
I’m having the same issue with permission errors but manually chown’ing the mounted volume isnt helping.
It’s able to create some of the folders inside the config folder but can’t seem to create
/home/steam/.config
I have to Thank you guys for being so nice and your ambition to help me.
@voruti that did the trick… it starts now. I also added the user to docker-compose file.
I did a quick test in the mean time. There is indeed no change when moving out of the userfolder. Thanks for the (ultra) quick replies.
Adding
RUN ls -lAh /
to Dockerfile in line 9 and 12:Yes it does this on the host, if you specify a volume mount.
But when starting the container without volume (eg.
docker run --network host wolveix/satisfactory-server
) the /config folder is used as it is and the container crashes.The only way (that I can think of) to automatically fix this issue would be to run the image as
root
and then drop tosteam
in theinit.sh
script. But that defeats the whole security purpose outlined above, as the container itself would still be running asroot
. More than happy for feedback or criticisms 😃Hey! This is a duplicate of #43 I’m about to add additional information about this. You need to pass
--user=1001
or whatever your user ID is on the host (runid
).