GameServerManagers / GameServerManagers/docker-gameserver
Setting UID/GID/USER is broken
- Dominant language
- Shell
- Stars
- 344
- Forks
- 26
- PR merge metrics
- No merged PRs in 30d
Description
We had an issue where the docker image `gameservermanagers/gameserver:css` was setting `UID` and `GID` to `1000` which was the wrong user (even if user `linuxgsm` existed for example on id `1006`) on our server and the volume (dir) would get chowned for the wrong user.
After noticing that it's set through ENV we added variable overrides to `docker-compose.yml` *(some data is redacted)*:
```yml
version: "3.8"
services:
linuxgsm-css-bind:
image: gameservermanagers/gameserver:css
volumes:
- /home/combat/combat-css-server:/data
environment:
- USER=combat
- UID=1005
- GID=1005
```
But the docker image would still fail with:
```
combat-css-server | Switch to user combat
combat-css-server | =================================
combat-css-server | error: failed switching to "combat": unable to find user combat: no matching entries in passwd file
combat-css-server |
combat-css-server | Check Permissions
combat-css-server | =================================
combat-css-server | setting UID to 1005
combat-css-server | setting GID to 1005
combat-css-server | updating permissions for /data
combat-css-server | chown: invalid user: ‘combat:combat’
combat-css-server | updating permissions for /app
combat-css-server | chown: invalid user: ‘combat:combat’
```
The problem is that the user exists
```sh
# combat@noil:~$ id
uid=1005(combat) gid=1005(combat) groups=1005(combat),100(users),994(docker)
```
We are not and will not run docker or any other similar daemons or commands with sudo. The `combat` user is part of the `docker` group and is able to run docker images without sudo.
How should we proceed to start the `linuxgsm (gameserver)` on our `combat` user, so that the volume and the start scripts would get the correct UID/GID ?
Or is it only possible to start as non-root is with `linuxgsm` user and then deal with dir/file permissions so that `combat` user could modify files owned by `linuxgam` user ? (As it worked to start the docker image with user=linuxgsm,id=1006,gid=1006)
`chmod 775` is not a solution, as everytime the docker container is started it overrides all ownerships and permissions
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.