#Docker Help

1 messages · Page 2 of 1

worldly hull
#

and see what happens

toxic sonnet
#

thats a fair point. I'm not running everything in k8s. I only have a small k3s cluster with some webservices

#

never tried running a gameserver or something like that.

worldly hull
#

My kubernetes cluster doubles as my lab for work. So I decided to just run my gameservers in it too lol

#

you've got to be kidding me. My proton image is working just fine on docker.

#

I wonder how many hours I've wasted on this 😄

toxic sonnet
#

does podman support building arm like docker buildx does?

worldly hull
#

podman doesnt build on its own. I use Buildah

#

and I believe so

#

oh wait... I am wrong, it does.

#

I swear it did not used to

#

In either case, I still use Buildah lol

toxic sonnet
worldly hull
#

lol yeah

#

the thing I am curious now is... is it podman in general that is having an issue or just podman in my WSL environment which is not a true Linux environment

#

I won't have the capability to run VMs in my lab yet for a while and I don't want to install podman on my servers as that's my production environment running kubernetes

toxic sonnet
#

well I don't have podman installed, and with mac it would probably not work

worldly hull
#

No worries, I'll ask around and if not maybe I'll just run a VM on this windows machine

plain hollow
#

I have never used podman but can get it up and running on my Nixos machine tomorrow and spin up a container/pod to give you a second point of reference.

Also, I'm the TrueNorth guy you were talking to earlier today.

worldly hull
#

podman syntax is same as docker, you just replace the word docker with podman in your commands. Couple of notes, the containers them selves don't run as root by default (on the host), and it doesn't look at docker hub by default, you have to specify full path for container image, so instead of sknnr/enshrouded:latest for example it would be docker.io/sknnr/enshrouded:latest

#

that's really all you need to know about podman for doing testing

plain hollow
#

Well that makes things easier.

#

Do either of you forsee any issues installing podman alongside docker on my server?

worldly hull
#

nah should be fine, they both use runc as their underlying (lower level) container runtime

plain hollow
#

I almost switched over when Docker pulled their shenanigans early last year but they backed off so I stayed with what was comfortable.

worldly hull
#

yeah docker is... well... they've got a good product and they'd like it to make money 😄

plain hollow
#

Yeah, I don't really fault them for trying to monetize on their hard work. They just need to be more tactful about implementing it.

worldly hull
#

Yeah I got it working last night with proton run. The only annoyance is that proton run exits and I’ve got a bunch of processes it spawns. Using & to run it in the BG is basically useless as it exits anyway. Supervisor can’t handle it either as, again, proton exits once wineserver and everything else is running so I’d basically have to tell it run it once and don’t attempt to restart so what’s the point of supervisor. I tried using wait, but again because that pid exits once it starts all the background processes that doesn’t work either.

#

So I settled on discovering the pid that is running enshrouded_server.exe and then doing some voodoo to just watch that pid. Not with wait though, because that doesn’t work because it’s not a child of my shell.

worldly hull
#

My proton image is available for testing sknnr/enshrouded-dedicated-server:proton-latest as a bonus the image is about half the size of my wine image coming in at 714MB compressed

plain hollow
#

Well I got podman up and running and started a container with your command and proton-latest. It appears to have started without issue. My Enshrouded is updating right now but i'll try to connect locally after that.

#

[I 00:00:01,470] [online] Server connected to Steam successfully

#

Do you have it pull ge-proton latest or did you just set it to the latest version that came out this morning or yesterday?

worldly hull
#

Well GE-Proton is pulled during image build not container start. The containerfile is set to pull 8.30

#

which is currently latest

plain hollow
#

ahh yeah that makes sense. So will it always pull latest on rebuild?

worldly hull
#

No, it is pinned to 8.30 in the containerfile to avoid any surprises. I like to pin things.

#

I think my podman setup is just mucked up

#

I am also doing some updates to my ark ascended container which also uses proton and the containerfile is like 99% identical to what I have for Enshrouded and it builds and runs just fine

#

even more interesting is that I don't have weird issues with proton pid after it starts either

plain hollow
#

I will need to give your asa proton image a try. I spun up a container a couple months ago and can't even remember who I went with. My server will appreciate any performance increase.

worldly hull
#

it's been out there almost since release

#

though I am currently ripping supervisor out of it and making some changes to get the image a bit more lean

plain hollow
#

Are there any tools like arkmanager at this point?

worldly hull
#

there might be. I thought I saw something like that

#

I haven't been playing it much as I kept crashing

visual thorn
#

how would one go about using a latter image while keeping the savegame from the an older one? I tried mounting the volume, but getting The ownership of /home/steam/enshrouded/savegame is not correct and the server will not be able to save....

worldly hull
worldly hull
#

If it's a bind mount, it will be where ever you are mounting it from. If it's a docker volume, by default those get created in /var/lib/docker/volumes

crisp canyon
#

It happens the same to me and no success changing it

worldly hull
#

What do you mean by no success changing it? I wrote that check to make sure the server can write to the save directory, if the check fails I output that error. If you fix the permissions it WILL get past this check.

crisp canyon
#

I was replying to ekiken about no success changing the number of slots to something below 16 slots, it always shows 16 in my case and it looks at ekiken. Btw I am using your image @worldly hull without any issue at all in an ubuntu running rootless portainer. Thanks for all the support to make it work.

worldly hull
#

Oh lol, I should learn to read a bit better. No, worries. Glad it's working well for you.

#

I think I have seen others stating that it doesn't respect that setting at all in the config

crisp canyon
#

I have tried to lower the number because 1) i dont need that many slots (3-4 would be ok) and 2) because I am hoping lowering the number will reduce the CPU consumption as I expect creating more slots "maybe" is creating more sockets or equivalents to listen for those connections

#

I am also aware this is a really early launch and things will get better with time

worldly hull
#

try my proton-latest image

#

whatever proton is doing on top of wine to handle the windows network stack and how its implemented in the enshrouded server seems to be more performant than just using wine alone.

crisp canyon
#

Thanks I will do that

visual thorn
worldly hull
#

can you do ls -al /var/lib/docker/volumes

visual thorn
#
total 36
drwx-----x  3 root root   4096 Feb  1 11:16 .
drwx--x--- 12 root root   4096 Feb  1 11:10 ..
brw-------  1 root root 259, 9 Feb  1 11:10 backingFsBlockDev
-rw-------  1 root root  32768 Feb  1 11:10 metadata.db
drwx-----x  3 root root   4096 Sep 19 20:04 minikube
worldly hull
#

and how about a whoami && df -h

visual thorn
worldly hull
#

hmm

#

are you running this in minikube or in docker natively

visual thorn
#

docker natively

worldly hull
#

and has it ever worked

visual thorn
#

yea the server still works

#

it has our savegame

worldly hull
#

has the container ever stopped?

visual thorn
#

it has

worldly hull
#

ok then it seems docker may be telling us tales from the school yard

visual thorn
#

I just started it a few minutes ago to see if it was still working

worldly hull
#

this is curious

#

where the hell is that volume 😄

visual thorn
#

lol fr

toxic sonnet
#

maybe you have a volume declaration in your docker compose file and use relative paths in the volume declaration of the service?

worldly hull
#

good thought

#

are you using compose?

visual thorn
#

I'm not using compose

toxic sonnet
#

well damn 😄

worldly hull
#

can you show me the full command you are using to start the container

#

you know what, let's try this...

#
find / -type d -name "enshrouded-persistent-data"
visual thorn
worldly hull
#

its not getting mounted

visual thorn
#

pretty sure I pretty much copy-edit-pasted the command from the docker page to get it started

worldly hull
#

my instructions would have included it

#

ok

#

this is an issue

#

let me think for a second, we need to get your save off of your current container

visual thorn
#

weird thing is that it shows that the files are being modified

worldly hull
#

lol ok what the hell

toxic sonnet
#

is that a windows does things weird issue?

worldly hull
#

maybe

toxic sonnet
#

that is docker for windows?

visual thorn
#

on arch linux

worldly hull
#

is that docker for windows with wsl?

toxic sonnet
#

with docker desktop, never used that on a linux before 🤔

worldly hull
#

can you do docker ps -a

toxic sonnet
#

well somewhere it should be configured, where it really stores the volumes

visual thorn
#

weird... docker ps isn't showing anything running, but docker desktop is

toxic sonnet
#

😄

#

so docker desktop spins up a own vm?

worldly hull
#

lol

#

I bet

toxic sonnet
#

i'm super confused

visual thorn
#

wtf has to be

worldly hull
#

I think by default docker desktop uses an ubuntu WSL image

#

riddle me this

#

can you from your windows shell

#

wsl --list

visual thorn
#

I'm not in windows

toxic sonnet
#

it's a linux with a vm running docker

worldly hull
#

so native arch with docker desktop

visual thorn
#

arch based (endeavour) with docker desktop, yea

toxic sonnet
#

puh, for now you can download those two files and save it on your normal system

#

with docker desktop you should have a button or something for that

visual thorn
#

yea I have it backed up

#

time to get rid of docker desktop ... uuugggghhh

worldly hull
#

can you look at the volume in docker desktop

#

and see where it's pointing to

#

and yeah, I would

#

because we need to find that volume so we can get your save out of it

visual thorn
#

is it the 3ad85aea files?

worldly hull
#

yes

visual thorn
#

I have those saved

worldly hull
#

ok, so remove docker desktop to avoid confusion

visual thorn
#

for sure. thanks yall.

worldly hull
#

and run the container using one my examples from GH readme

#

and when the volume is created, drop those files into the volume

#

and chown them to 10000:10000

#

if docker creates the volume, the volume itself will have the right permissions but those files will not until they are chown'ed

#

also if you are upgrading to one of my latest images, consider the proton-latest tag

visual thorn
toxic sonnet
#

and if you want something to manage your running dockers, you can lookup portainer

#

there you get a website with an overview of running containers. You can also create and manage the containers there

worldly hull
#

and if you're exploring kubernetes, I recommend ArgoCD

#

also recommend k3s over minikube

visual thorn
#

ohh. was just thinking about trying that

toxic sonnet
#

k3s is nice and also k9s for nice terminal view

visual thorn
#

I've been a backend dev, a front end dev. Trying to learn a bit of devops now.

worldly hull
#

welcome to the fold

#

in real life, I am an enterprise devops/platform architect

#

once you get something like k3s going, argocd integrates nicely and is a super slick way to deploy into the cluster. That is the setup I have in my home environment.

#

and then I wrote a bunch of automation that watched my kubernetes services and keeps a state in S3. So whenever there is a deploy into the cluster it checks for new or removed services and automatically build firewall rules and DNAT/port-forwarding rules on my router so I don't have to lol

#

only works with Ubiquiti EdgeOS devices

toxic sonnet
#

I'm thinking to build a small homelab. Maybe a small cluster with 3 zima blades. So I will definitely take a look at ArgoCD

worldly hull
#

yeah that's why all my game server projects have helm files, selfishly thats how I deploy everything. Argo just reaches out to my GH project, slurps up the helm chart and I plug my values in. Deployed.

#

and then my network automation picks up the service deployment and firewall rules and dnat rules get auto deployed.

toxic sonnet
#

what is your storage solution for the cluster? NAS as blobstorage?

worldly hull
#

Ah

#

one second

#

distributed block

#

each of my k3s nodes has a handful of ssds

#

and I use MetalLB with BGP service advertisement to my router so as the pods/services migrate around the cluster my router always knows how to route to the service. I use LoadBalancer type services, not nodeport.

toxic sonnet
#

added to the list - does longhorn also work directly with a nas?

worldly hull
#

I've not tried that approach. It wants to be able to have full access to individual drives

toxic sonnet
worldly hull
#

yeah I don't use VIP at all

#

with MetalLB I have a service pool which is just an arbitrary subnet that gets advertised as individual /32 route entries for each service to my router

toxic sonnet
#

I never setup a cluster before. That will be a challenge for sure

visual thorn
#

off topic for the game server, but are there good resources to learn more devops yall would recommend?

worldly hull
#

for more structured continuous education I use Udemy some times

#

I just have an annual subscription. If you keep an eye one it, they do discounts on those from time to time

visual thorn
#

Yea I've used udemy a whole lot too through out my career and have always waited for their crazy sales

#

which seems like at least a monthly thing

worldly hull
wraith tree
#

Hi, does this Docker container solve the issue of high CPU usage on the server?

dark frigate
#

Use a Docker container with Proton instead

#

Or if you're using Pterodactyl use an egg with Proton

#

Same thing

#

Also, you haven't linked anything

wraith tree
#

Yes, I use Pterodactyl proton egg, But the problem is equally serious.

dark frigate
#

What are your server stats?

wraith tree
#

Only one players join game, CPU usage 2000%

dark frigate
wraith tree
queen nova
#

looks like a problem on your server

#

Enshrouded server uses all cores 😉 Try to limit the core for the enshrouded Server in Ptero

worldly hull
#

it's just resource contention

#

also 2.3ghz may be a bit slow for game servers - great for web apps

#

looks like your 15 minute load average was around 21, and then your 1 minute jumped up to 45, probably with the start of the enshrouded server

#

no iowait so thats good

#

their network stack does not like linux. Proton helps. Is that a VM by chance?

#

if it is, what network driver are you using for the VM

plain hollow
#

@worldly hull I had a question concerning your asa proton container but didn't feel like this was the right spot to ask so I just created an issue on github. No rush but if you'd be willing to look at it I would appreciate it. Having an annoying issue that I feel could be user error.

worldly hull
#

No worries. I’ll take a look at it when I get a chance. Also I get emails on tickets so I would’ve seen it.

plain hollow
worldly hull
#

Just like enshrouded, I don’t persist game data. Just save data.

swift shadow
worldly hull
#

virtio is what you want, or vmxnet if you’re using esxi. What you don’t want is e1000. You also need to be sure that you have the guest utilities installed and running on the vm if you’re using either of the paravirtualized network adaptors.

plain hollow
#

@worldly hull I'm sorry to bother you, but have a question. Is your latest 2.0.5 image proton or should we still use the proton-latest tag?

#

I just started it up with 2.0.5 and I don't see it pulling proton anywhere in the log.

worldly hull
plain hollow
#

Thanks for the reply, sorry to bother you.

worldly hull
#

no worries

plain hollow
#

Would it be ok to just swap tags or should I nuke the folder and start over when switching to proton?

worldly hull
#

Nope it will be ok. the only thing in the volume is the saves

plain hollow
#

Great, enjoy your evening.

plain hollow
# worldly hull Nope it will be ok. the only thing in the volume is the saves

Please don't look into this now, instead enjoy your evening. However, the proton-latest image is stuck in an error loop.

[I 00:00:00,162] [app] start creation step Init_SteamworksCAppInfoCacheReadFromDiskThread took 5 milliseconds to initialize [E 00:00:00,286] [steam] Failed to initialize Steamworks system...Generic Error [E 00:00:00,286] [steam] Message from Steam: InitGameServer failed [E 00:00:00,286] [app] Failed to create Steamworks. [I 00:00:00,291] [app] start destruction step Init [I 00:00:00,296] [enshrouded] Close Log file 2024-02-05 04:35:50,520 INFO: Waiting for enshrouded_server.exe to be running **repeats several times but deleted for a smaller comment** 2024-02-05 04:36:44,559 INFO: Waiting for enshrouded_server.exe to be running 2024-02-05 04:36:44,563 ERROR: Timed out waiting for enshrouded_server.exe to be running 2024-02-05 04:36:45,167 INFO: Updating Enshrouded Dedicated Server

I will play some Hunt Showdown instead and check back later on.

#

I also deleted everything in the folder and doubled checked it was owned by 10000:10000. then re-pulled the image and started it up again. Still looping

worldly hull
#

try setting SERVER_IP to 0.0.0.0 if it isn't already

#

problem is its failing to get connected to the steam backend

#

one cause of this error is when folks set an IP address for SERVER_IP argument that isn't actually on the container. It can't find the interface because the IP isn't assigned to any interface on the container so it fails to initialize

plain hollow
#

I definitely don't have my ip there instead of 0.0.0.0..... for sure I'm not one of those people.....

Ok, let me change that and I'll get back to you if that doesn't work.

#

Ok I now have a working proton container, thank you. Now to see if I can successfully shove it behind Caddy.

plain hollow
#

For some reason every time I restart the container it is downloading 12.8 GB of game though.

#

Update state (0x61) downloading, progress: 84.48 (10881860046 / 12880537546)
maybe not 12.8 gb but it seems that way if those are bytes.

worldly hull
#

Yeah that isn't a bug but by design. I don't persist the game data just the save data. This is just my philisophy when I design containers. It makes sure that we have clean data everytime and if something goes wrong with the server binaries we can just blow the container away and start a fresh one. (which I suppose you could also achieve by deleting the volume lol)

#

I may in the future change this for folks that may be on metered and or slower connections.

#

are you using caddy as a reverse proxy?

plain hollow
#

Yes I use caddy. I ended up not going that route when researching why it wasnt working. I found that games that run with basic tcp/udp can't run through caddy v2
I'd really like to use a reverse proxy but don't really want to completely change my caddy setup for all the other services just to run game servers through it.

plain hollow
#

I'm really glad you cleared that up for me because I thought I was going crazy. Trying to figure out what I screwed up to make it redownload every time.

worldly hull
plain hollow
#

I'll have to. I feel like I finally figured out caddy. I'm hesitant to dig into nginx but have felt that tinkering itch lately. Just the fact that I can reverse proxy a game server might finally be enough for me to learn it. Time to stand up another server and learn lol.

abstract anvil
queen nova
sharp ermine
#

I'm using sknnr's container to run a dedicated server; the wine version works but has significant performance issues. However, the proton version doesn't seem to work at all. The container starts but gets stuck at the "start creation step Init_MountPackage" line. There's no error message, it just seems to freeze at this point with high CPU usage.

Running debian 11 / kernel 5.10 / rootless podman

Anyone else had this issue?

plain hollow
#

Dont forget to chmod 10000 your folder and make sure the domain is set to 0.0.0.0 in the compose file.

#

@sharp ermine ⬆️

sharp ermine
#

I'm not using docker-compose, but I did set the SERVER_IP env variable and the permissions should be fine. Everything works if I just swap the image to the WINE one; only proton doesn't

abstract anvil
weak torrent
agile tendon
#

Q on updates: I am relatively new to containers (I can get them to work but do not maintain them on a regular basis) and I have a Enshrouded Server running on Docker in Linux. When the game is patched/upgraded, what do I need to do? Based on what can deduce, I should be able to stop and start the container as the launch updates the game, is that correct?

distant phoenix
agile tendon
distant phoenix
#

@agile tendon I cannot find via win explorer nor in the web Ui, file station. I also tried to look for it via SSH, but as I don’t have a clue what I’m doing, I failed here as well 😂🙈

agile tendon
distant phoenix
#

hm that looks like this:

#

@agile tendon i think i have to edit the .yaml file for the correct target?
I tried /volume1/BackUp... as "BackUp" is an shared folder that i can access via fileexplorer but id looks like /volume1/.. is not the correct path...

agile tendon
#

This is what I see when I look at my volume. I don't have access to a Synology to look at where the files might be in that file system, sorry.

distant phoenix
#

@agile tendon ok 🙂 Thx a lot!

agile tendon
#

So there is a new update and my linux server is small (to save costs). Does anyone have a process already detailed to clean up the old container and server files to clear space to repull the container (and updated server build)?

agile tendon
# swift shadow there's a new update?

It didn't seem like the docker container did, but the server did. I couldn't get it working right so I had to delete the existing container and struggled because the server that I'm running on has a small drive.

blazing harness
#

i've not yet cycled the container just for the server update, the mornedhels/enshrouded-server has an option (UPDATE_CRON) to check for updates and it's been working well for me

sand root
#

command

#

like docker image prune for images, etc...

#

be carrefull tho, beceause by default it will delete all flaged unused elements

#

to clear build cache and all intermediates images and other stuff

#

use bash docker system prune