Didstopia / rust-server

Provides a dedicated linux server for Rust (the game) running inside a Docker container.
MIT License
244 stars 104 forks source link

Running in Rancher 2.0 not claiming ownership of directories #49

Closed t3pfaffe closed 5 years ago

t3pfaffe commented 5 years ago

On latest image, docker version, and Rancher 2.x version.

Describe the bug So running this in Rancher 2.0 with the steamcd directory mounted to an NFS volume it fails to do anything in that directory. Now I understand that this just sounds like a problem on my end with permissions but I even set the the permissions of anyone mounting the share to that of root for testing and I achieved the same result. The image appears to try to chown everything to a seperate user. I dont think that will work on a persistent volume afaik. Upon startup these are the logs.

+ trap exit_handler SIGINT SIGTERM 
+ rm -fr '/tmp/*.lock' 
+ '[' '!' -d /steamcmd/rust ']' 
+ '[' '!' -d /steamcmd/rust/server/docker ']' 
++ whoami 
++ whoami 
+ chown -R root:root /steamcmd/rust 
chown: changing ownership of '/steamcmd/rust/logs/archive/docker_2019-07-31_00-42-59.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/archive/docker_2019-07-31_00-45-31.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/archive/docker_2019-07-31_00-40-51.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/archive/docker_2019-07-31_00-38-39.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/archive': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/docker_2019-07-31_02-53-06.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs': Invalid argument 
chown: changing ownership of '/steamcmd/rust/test/fuck.test': Invalid argument 
chown: changing ownership of '/steamcmd/rust/test': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/Bundles/shared': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/Bundles/maps': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/Bundles/items': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/Bundles': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/4.5/Browsers': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/4.5': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/registry': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/2.0/Browsers': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/2.0': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/mconfig': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/4.0/Browsers': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/4.0': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/x86_64': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/StreamingAssets/MenuVideo': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/StreamingAssets': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/Managed': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/Resources': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/Plugins/x86_64': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/Plugins': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/state_258550_258552.patch': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/appmanifest_258550.acf': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/temp/258550': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/temp': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/libraryfolders.vdf': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps': Invalid argument 
chown: changing ownership of '/steamcmd/rust/server/docker/test.test': Invalid argument 
chown: changing ownership of '/steamcmd/rust/server/docker': Invalid argument 
chown: changing ownership of '/steamcmd/rust/server': Invalid argument 
chown: changing ownership of '/steamcmd/rust': Invalid argument 
+ echo 'Installing/updating steamcmd..' 
Installing/updating steamcmd.. 
+ curl -s http://media.steampowered.com/installer/steamcmd_linux.tar.gz 
+ tar -v -C /steamcmd -zx 
linux32/ 
linux32/libstdc++.so.6 
linux32/steamcmd 
steamcmd.sh 
steam.sh 
+ '[' '!' -z ']' 
+ sed -i 's/app_update 258550.*validate/app_update 258550 validate/g' /install.txt 
+ '[' 0 = 2 ']' 
+ install_or_update 
+ echo 'Installing or updating Rust.. (this might take a while, be patient)' 
Installing or updating Rust.. (this might take a while, be patient) 
+ bash /steamcmd/steamcmd.sh +runscript /install.txt 
Redirecting stderr to '/root/Steam/logs/stderr.txt' 
[  0%] Checking for available updates... 
<redacted>
[100%] Download complete. 
[----] Installing update... 
[----] Extracting package... 
[----] Extracting package... 
[----] Extracting package... 
[----] Extracting package... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Cleaning up... 
[----] Update complete, launching %appname%... 
Redirecting stderr to '/root/Steam/logs/stderr.txt' 
[  0%] Checking for available updates... 
[----] Downloading update (225 of 49,996 KB)... 
<redacted>
[100%] Download complete. 
[----] Installing update... 
[----] Extracting package... 
[----] Extracting package... 
[----] Extracting package... 
[----] Extracting package... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Cleaning up... 
[----] Update complete, launching Steamcmd... 
Redirecting stderr to '/root/Steam/logs/stderr.txt' 
[  0%] Checking for available updates... 
[----] Verifying installation... 
Steam Console Client (c) Valve Corporation 
-- type 'quit' to exit -- 
Loading Steam API...OK. 

"@sSteamCmdForcePlatformType" = "linux" 

Connecting anonymously to Steam Public...Logged in OK 
Waiting for user info...OK 

 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0) 
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0) 
 Update state (0x11) preallocating, progress: 1.07 (42114492 / 3924991346) 
 Update state (0x11) preallocating, progress: 1.07 (42114492 / 3924991346) 
 Update state (0x11) preallocating, progress: 1.69 (66295238 / 3924991346) 
 Update state (0x11) preallocating, progress: 6.55 (257080435 / 3924991346) 
 Update state (0x11) preallocating, progress: 6.56 (257464200 / 3924991346) 
 Update state (0x11) preallocating, progress: 6.57 (257873808 / 3924991346) 
 Update state (0x11) preallocating, progress: 6.58 (258225978 / 3924991346) 
Error! App '258550' state is 0x602 after update job.

+ '[' 0 -ne 0 ']' 
+ '[' '!' -f /steamcmd/rust/build.id ']' 
+ ./update_check.sh 
+ export LD_LIBRARY_PATH=:/steamcmd/rust/RustDedicated_Data/Plugins/x86_64 
+ LD_LIBRARY_PATH=:/steamcmd/rust/RustDedicated_Data/Plugins/x86_64 
+ '[' 0 = 1 ']' 
+ '[' 0 = 1 ']' 
+ RUST_STARTUP_COMMAND= 
+ '[' '!' -z x ']' 
+ RUST_STARTUP_COMMAND=' +rcon.port 28016' 
+ '[' '!' -z x ']' 
+ RUST_STARTUP_COMMAND=' +rcon.port 28016 +rcon.password testpass' 
+ '[' '!' -z x ']' 
+ RUST_STARTUP_COMMAND=' +rcon.port 28016 +rcon.password testpass +rcon.web 28016' 
+ '[' 28016 = 1 ']' 
+ LOGROTATE_ENABLED=1 
++ sed 's/./\L&/g' 
++ echo ' +rcon.port 28016 +rcon.password testpass +rcon.web 28016' 
+ RUST_STARTUP_COMMAND_LOWERCASE=' +rcon.port 28016 +rcon.password testpass +rcon.web 28016' 
+ [[  +rcon.port 28016 +rcon.password testpass +rcon.web 28016 == *\ \-\l\o\g\f\i\l\e\ * ]] 
+ '[' 1 = 1 ']' 
+ echo 'Log rotation enabled!' 
Log rotation enabled! 
+ RUST_STARTUP_COMMAND=' +rcon.port 28016 +rcon.password testpass +rcon.web 28016 -logfile /dev/stdout' 
+ echo 'Using startup arguments: ' 
Using startup arguments: 
+ '[' '!' -d /steamcmd/rust/logs/archive ']' 
++ date +%Y-%m-%d_%H-%M-%S 
+ DATE=2019-07-31_02-55-16 
+ RUST_SERVER_LOG_FILE=/steamcmd/rust/logs/docker_2019-07-31_02-55-16.txt 
+ echo 'Cleaning up old logs..' 
Cleaning up old logs.. 
+ true 
+ mv /steamcmd/rust/logs/docker_2019-07-31_02-53-06.txt /steamcmd/rust/logs/archive 
+ '[' 0 = 1 ']' 
+ cd /steamcmd/rust 
+ echo 'Starting Rust..' 
Starting Rust.. 
+ '[' 1 = 1 ']' 
+ child=132 
+ wait 132 
+ unbuffer /steamcmd/rust/RustDedicated +rcon.port 28016 +rcon.password testpass +rcon.web 28016 -logfile /dev/stdout +server.identity docker +server.seed 651984 +server.hostname 'Plz Revive I Haz Rust' +server.url rust.pfaffe.me +server.headerimage '' +server.description 'This is a server, I guess you can join it. If you want. I guess.' +server.worldsize 4000 +server.maxplayers 25 +server.saveinterval 600 
+ tee /steamcmd/rust/logs/docker_2019-07-31_02-55-16.txt 
+ grep --line-buffered -Ev '^\s*$|Filename' 
couldn't execute "/steamcmd/rust/RustDedicated": no such file or directory 
    while executing 
"spawn -noecho /steamcmd/rust/RustDedicated +rcon.port 28016 +rcon.password testpass +rcon.web 28016 -logfile /dev/stdout +server.identity docker +serv..." 
    ("eval" body line 1) 
    invoked from within 
"eval [list spawn -noecho] $argv" 
    invoked from within 
"if {[string compare [lindex $argv 0] "-p"] == 0} { 
    # pipeline 
    set stty_init "-echo" 
    eval [list spawn -noecho] [lrange $argv 1 end] 
    clo..." 
    (file "/usr/bin/unbuffer" line 13) 
+ pkill -f nginx 
+ echo Exiting.. 
Exiting.. 
+ exit 

It also notable does not throw permission denied calls anymore so as far as I can tell this is purely because it tries to chwon everything and obviously cant because the volume is persistent and the container is not so it cant have the same users. The steam update then fails and that is that. Can also confirm that it is writing data into that directory as well. image

Dids commented 5 years ago

Persistent volumes aren't really related to the issue here, as this is more of a volume backend issue (in this case NFS). See a similar issue here: https://serverfault.com/questions/443957/chown-changing-ownership-of-invalid-argument

As suggested in the link above, this should be fixable in the NFS share mount configuration.

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.