Fix steamcmd SEGFAULT without running the server as root #71
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves an issue with steamcmd.sh encountering a SEGFAULT when running as a non-root user. The server is installed, updated, and managed by the root user, but ownership of the server's files are always relinquished back to the steam user after they are created or modified.
This is more of a band-aid solution, as it would definitely be better to rework the image in such a way that it is not a requirement to constantly
chown
files back to thesteam
user, and also to not run anything as root, but I figure this is a serviceable and minimally-invasive solution to get the image working for now.The change modifies the image to be based off of the root variant of the
steamcmd-minimal
image, and then creates asteam
user manually in the Dockerfile. Therun_server.sh
script is run as root, but the command to run the server is done as thesteam
user. As mentioned above, whenever files required by the server are created or modified (as root) byrun_server.sh
, their ownership is transferred back to thesteam
user.