ЛоготипPolochka
Garry's Mod

Garry's Mod в Docker

Запуск сервера Garry's Mod при помощи Docker

Время чтения: 3 мин

Создание своего Garry's Mod сервера с использованием Docker Container

Мой репозиторий можно посмотреть тут:

FoerMaster/garrysmod-to-docker

Установка

Скачиваем репозиторий на сервер

git clone https://github.com/FoerMaster/garrysmod-to-docker my_awesome_server

Получаем следующую структуру папок:

README.md
README.md
.dockerignore
.gitignore
LICENSE
README.md
docker-compose.yaml

При необходимости удаляем все README.md файлы и по сути уже можем запускать сервер и он будет работать, но мы пойдем дальше.

Загрузите в папку src все файлы вашего сервера с которыми вы работали ранее внутри папки garrysmod. К примеру вы в папке garrysmod меняли файл по пути lua/autorun/server/admin_functions.lua и добавили свой адддон/игровой режим. Считайте что папка src является папкой garrysmod но без лишнего мусора с которым вы не работали и не затрагивали.

При запуске сервера или при уже запущенном сервере, все файлы и папки будут откопированы в чистый gmod сервер с заменой.

Пример проекта который у меня получился на текущем этапе:

some.lua
admin_functions.lua
.dockerignore
.gitignore
docker-compose.yaml

Теперь настроим запуск сервера при необходимости, откройте docker-compose.yaml

name: gserver
services:
    gmod:
        image: ghcr.io/foermaster/gserver-docker-source:main # Можно поменять ветку на dev чтобы использовать dev ветку Garry's Mod!
        platform: linux/amd64
        stdin_open: true
        tty: true
        volumes:
            - ./src:/upd
            - ./data/data:/gmodserv/garrysmod/data
            - ./data/sv.db:/gmodserv/garrysmod/sv.db
        network_mode: "host"
        environment:
            HOST_IP: ${HOST_IP:-127.0.0.1}
            GMOD_PORT: "27015" # Порт сервера
            GMOD_TICKRATE: "32" # Тикрейт сервера
            GMOD_MAXPLAYERS: "16" # Макс слоты
            GMOD_GAMEMODE: "sandbox" # Игровой режим
            GMOD_MAP: "gm_construct" # Карта
            GMOD_INSECURE: "true" # Отключить VAC (true/false)
            POLL_INTERVAL: "2" # Интервал прохода вотчера файлов (указываем в секундах)
        command: # Опционально можем задать кастомные параметры запуска
            - +hostname # Указываем название сервера при запуске
            - "My Awesome Server" # аргумент (название сервера при запуске)
            - +rcon_password
            - "adminpass"
            - +sv_lan
            - "0"
        hostname: gserver

Теперь просто запускаем сервер!

docker-compose up -d # Запуск контейнера в фоне

Логи можно посмотреть тут:

docker-compose logs gmod

Разработка в Docker

В образе docker встроен file watcher он заменяет уже существующие файлы внутри garrysmod, если по какой-то причине вы удалили заменяемый файл, скрипт вернет на его место оригинальный файл!

Обновления

Докер переодический проверяет текущую версию сервера и если он обнаружит что она устарела, вам об этом напишет в логи/консоль!

Последнее изменение страницы:22 января 2026 г.

На этой странице