Hackebein / docker-garrysmod

Dockerfiles for Garry's Mod
https://hub.docker.com/r/hackebein/garrysmod/
28 stars 2 forks source link

Unable to edit Gamemodes #12

Closed brimdor closed 3 years ago

brimdor commented 3 years ago

Trying to change default settings for gamemodes. I go to the gamemode file terrortown.txt and adjust the defaults but once I restart the server, they are cleared and re-written back to the original data. Environment variables have been unsuccessful.

Hackebein commented 3 years ago

Can you please provide some more Information? Your start command and your config file would be a great help. (Please anonymize your AUTHKEY and GLST if present)

brimdor commented 3 years ago

Config File (in container) - /opt/garrysmod/gamemodes/terrortown/terrortown.txt terrortown.txt This is the file that keeps getting overwritten after restarting the container. The file and it's folder are bound to my host which is expected to keep the data persistent.

The command line is empty. I used one of your examples of CLI to build the container. The container wouldn't start when I used the volume binding. I kept erroring out so I now have /opt/steam bound to a folder on my host.

the server.cfg file is showing as a folder

Hackebein commented 3 years ago

When you start the container, the server is updating everything what is not matching with the newest version in steam CDN. I added for that an overlay folder. It's just a folder that gets copied over after every update (/opt/overlay => /opt/steam) Usage see: https://github.com/Hackebein/docker-srcds#overlay-folder

Hackebein commented 3 years ago

I changed my last message. It's everything fine with the documentation. The Feature that you are searching for (changing files that are provided from steam CDN) is documented here: https://github.com/Hackebein/docker-srcds#overlay-folder

the server.cfg file is showing as a folder

It's because the file doesn't exist. Check out Official documentation (https://docs.docker.com/storage/bind-mounts/). It says:

If you use -v or --volume to bind-mount a file or directory that does not yet exist on the Docker host, -v creates the endpoint for you. It is always created as a directory.

brimdor commented 3 years ago

Referring to the Overlay. How does it know where to place the file if I send it to overlay? I guess I need to see this in action to better understand how it functions.

It isn't overwriting the overlay files just like you said. Will need to test and see if the config file impacts the server.

Hackebein commented 3 years ago

First of all, i think /opt/garrysmod/gamemodes/terrortown/terrortown.txt is the wrong path it should be /opt/steam/garrysmod/gamemodes/terrortown/terrortown.txt

I just expand the example in readme, maybe that helps you already.

To explain how it works. It's just a folder that gets copied over after every update, inside container from /opt/overlay to /opt/steam. That means a mountet file at /opt/overlay/garrysmod/gamemodes/terrortown/terrortown.txt will be copied to /opt/steam/garrysmod/gamemodes/terrortown/terrortown.txt after server file verification/update.