Adding parameter -dedicated 'z:/server/Saves/Games/Test/dedicated.yaml' breaks docker start
esvarc opened this issue · comments
Created subdirectory in steamapps/common/Empyrion - Dedicated Server/Saves/Games with name Test, put there dedicated.yaml file. Then I started docker
docker run -it -p 30000-30003:30000-30003/udp -p 30004:30004/tcp --name empyrion -v ~/empyrion:/home/user/Steam bitr/empyrion-server -dedicated 'z:/server/Saves/Games/Test/dedicated.yaml'
It generate error where it complain about invalid runuser oprtion
+ '[' 0 '!=' 0 ']'
+ mkdir -p /home/user/Steam
+ chown user: /home/user/Steam
+ runuser -u user /entrypoint.sh -dedicated z:/server/Saves/Games/Trantor/dedicated.yaml
runuser: invalid option -- 'd'
Try 'runuser --help' for more information.
correct syntax should be
runuser -u user -- /entrypoint.sh -dedicated z:/server/Saves/Games/Trantor/dedicated.yaml
Both Issues #17 and # 18 I was able to fix, by exporting /entrypoint.sh to my /home/steam/empyrion.sh and editing it. Edits are
- create user home and chown only when path doesn't exist
- adding '--' to runuser command
#!/bin/bash -ex
[ "$UID" != 0 ] || {
[ -d ~user/Steam ] || mkdir -p ~user/Steam; chown user: ~user/Steam
runuser -u user -- "$0" "$@"
exit 0
}
then I changed owner and added default ACL as root, to accomodate access for second user on my machine which is steam (UID=1001)
chown 1000.1000 -R /home/steam/empyrion
setfacl -d -m u:steam:rwx,g:steam:rwx,o::rx -R /home/steam/empyrion # steamcmd sets +x on avery file anyway
setfacl -m u:steam:rwx -R /home/steam/empyrion
Finally runs with
docker run -it -p 30000-30003:30000-30003/udp -p 30004:30004/tcp --name empyrion -v ~/empyrion:/home/user/Steam -v ~/empyrion.sh:/entrypoint.sh bitr/empyrion-server -dedicated 'z:/server/Saves/Games/Test/dedicated.yaml'
+ '[' 0 '!=' 0 ']'
+ mkdir -p /home/user/Steam
+ runuser -u user -- /entrypoint.sh -dedicated z:/server/Saves/Games/Test/dedicated.yaml
+ '[' 1000 '!=' 0 ']'
+ GAMEDIR='/home/user/Steam/steamapps/common/Empyrion - Dedicated Server/DedicatedServer'
+ cd /home/user
+ STEAMCMD='./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous '
+ '[' -z '' ']'
+ eval './steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +app_update 530870 +quit'
++ ./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +app_update 530870 +quit
Redirecting stderr to '/home/user/Steam/logs/stderr.txt'
... SNIP ...
Waiting for user info...OK
Success! App '530870' already up to date.
CWorkThreadPool::~CWorkThreadPool: work processing queue not empty: 1 items discarded.
+ mkdir -p '/home/user/Steam/steamapps/common/Empyrion - Dedicated Server/DedicatedServer/Logs'
+ rm -f /tmp/.X1-lock
+ export WINEDLLOVERRIDES=mscoree,mshtml=
+ WINEDLLOVERRIDES=mscoree,mshtml=
+ export DISPLAY=:1
+ DISPLAY=:1
+ Xvfb :1 -screen 0 800x600x24
+ cd '/home/user/Steam/steamapps/common/Empyrion - Dedicated Server/DedicatedServer'
+ '[' -dedicated = bash ']'
+ /opt/wine-staging/bin/wine ./EmpyrionDedicated.exe -batchmode -nographics -logFile Logs/current.log -dedicated z:/server/Saves/Games/Test/dedicated.yaml
+ sh -c 'until [ "`netstat -ntl | tail -n+3`" ]; do sleep 1; done
sleep 5 # gotta wait for it to open a logfile
tail -F Logs/current.log ../Logs/*/*.log 2>/dev/null'
... SNIP ...
01-15:59:49.191 15_59 -LOG- INFO: Uptime=00h06m 59.999 2365 heap= 317MB fps=39.5 players= 0 pfs=r0/i2/a0 ticks=8335 nwqueue=
01-16:00:49.209 16_00 -LOG- INFO: Uptime=00h07m 60.018 2379 heap= 317MB fps=39.8 players= 0 pfs=r0/i2/a0 ticks=9536 nwqueue=