Closed greenfox1505 closed 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
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.
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.
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!
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!
I'm not in a hurry. I'm using my own container now.
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.
@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.
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