ich777 / docker-steamcmd-server

Simple Dockerfile that installs steamcmd and a selected game server
119 stars 95 forks source link

Stationeers container requires a newer glibc version. #33

Closed greenfox1505 closed 1 year ago

greenfox1505 commented 1 year ago

Stationeers requires glibc 2.34. This dockerfile (line 7-9) has a patch for putting a newer glibc on to a debian container. (or just use Ubuntu 22.04)

https://github.com/ralyon76/stationeers-server/blob/ae8305f986ebe4fb400fba217422aae861586079/Dockerfile#L7

ich777 commented 1 year ago

Please make sure your Docker installation and especially runc is up-to-date, the container is just running fine on my Unraid system.

I attached the log from a fresh installation: stationeers.log

greenfox1505 commented 1 year ago

My system is updated. The problem is the container. Please look into my post.

Stationeers doesn't not fail gracefully. When it fails to load it continues loading. Then hangs. Never closes with bad arguments, bad configs, or any other fail condition. I can see from your own log here that the server did not start. If you tried connecting to this container with a Stationeers client, you'd see there is no service running.

In your log is this line:

Unable to preload the following plugins:
        RocketNet.so

There are a number of other errors later related to RocketNet not loading. These errors do not cause the application to close. Merely hand in a unloaded state.

That RocketNet.so is the binary that needs the new glibc. You can probe it out of the Stationeers install to find more information.

If you use nm RocketNet.so (nm from buildutils), you'll see they use posix threads from glibc 2.34.

ich777 commented 1 year ago

I will look into that but this will take a few days. Maybe I will create a new base image for that container with Debian Bookworm, I'm not entirely sure if I drop support for that container since it gave me much issues in the past too.

greenfox1505 commented 1 year ago

If you can stomach Ubuntu 22.04, that would work too. The side load of just this glibc works too (but hacky).

RocketWerkz (devs of Stationeers) haven't been great about keeping things working for end users. As far as I can tell, the wrote a blog in the form of a git repo 6 months ago about how to run a server, failed to mention the glibc requirement then abandoned it. Looks like they built that RocketNet.so binary with the latest Ubuntu, 22.04 at the time, without realize that's not standard practice.

Anyway, I do appreciate your efforts on these containers. I usually end up writing a bash script to tack onto an existing Ubuntu container per game I need to run, but you've really gone far to get ALL the services here. If you have to cut Stationeers, it's understandable. Better to not have a container than one that doesn't work. Personally, it might have saved me some debug time to not assume the container was working.

I run many of your other containers flawlessly though!

ich777 commented 1 year ago

Yes I know, but I'm trying to stick to Debian, hope that's understandable... :D

You could however write a user script and uninstall the current installed libc, inject the Bookworm repository and then pull the new one from the injected Bookworm binary. You just have to write a script on the host and mount it to the container into /opt/scripts/user.sh <- This script will then be executed each time the container is started. Of course this is only a temporary solution and also kind of a hack... but it is doable.

Usually I try to not deprecate containers but it happens some time.

I will definitely look into that and report back, but as said will take a few days, weekends are family time. :)

EDIT: Oh and thank you for the report!

greenfox1505 commented 1 year ago

I'm not in a hurry. I'm using my own container now.

ich777 commented 1 year ago

I've now updated the Bookworm base image and pushed an update to the container to use this base image, please check if it is now working for you.

I see now the message Ready after the container fully started.

ich777 commented 1 year ago

@greenfox1505 I'm closing this for now since it seems to me the updated from the base image to Debian Bookworm fixed the issue. Please let me know if you are experiencing any issues.