docker-spaceengineers
docker-spaceengineers copied to clipboard
Health check fails
tried putting my domain there the ipv4 localhost 127.0.0.1, nothing works
Status | starting
Failure count | 0
Last output | % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 42 100 42 0 0 106 0 --:--:-- --:--:-- --:--:-- 106
Status | unhealthy
Failure count | 477
Last output | % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 117 100 117 0 0 481 0 --:--:-- --:--:-- --:--:-- 479
Hmm okay, im sorry to hear that. Im currently not running a server because of my heavy workload, so i can't say if it should work or it is broken currently. Maybe someone else can help here.
maybe try my latest image image: devidian/spaceengineers:winestaging
i recently updated os and wine to latest version. Might go into main soon.
I'm also having problems with this. The Steam GetServersAtAddress API responds with {"response":{"success":true,"servers":[]}}
even though my server is running (I can play on it).
I devised a different health check script:
#!/bin/bash
# Payload is "TSource Engine Query" padded by ffffffff and with null terminator.
PAYLOAD="\xff\xff\xff\xff\x54\x53\x6f\x75\x72\x63\x65\x20\x45\x6e\x67\x69\x6e\x65\x20\x51\x75\x65\x72\x79\x00"
RESPONSE=$(printf $PAYLOAD | nc -u -w1 $PUBLIC_IP "27016") # Hardcoded port
if [ -n "$RESPONSE" ]; then
exit 0
else
exit 1
fi
I formulated this by inspecting the traffic between client and server as it connects. It seems as though the client sends "TSource Engine Query" to the server, which then responds with nine bytes which the client echoes. A handshake I guess. The above script only checks whether the server responds (within one second "-w1"), and does not echo the response back.
The port is hardcoded. Perhaps that should be an environment variable like the PUBLIC_IP.
It does add a dependency: netcat. It's only 140 kB though. Aside from the current healtcheck, curl only seems to be used once in Dockerfile which can be replaced by wget, so 480 kB can be saved by removing it if I'm right.