Initial commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# Описываем список запускаемых сервисов (контейнеров)
|
||||
services:
|
||||
# Название нашего сервиса внутри экосистемы Docker Compose
|
||||
stun:
|
||||
# Путь к папке, где находится Dockerfile для сборки образа.
|
||||
# Точка означает текущую директорию.
|
||||
build: .
|
||||
|
||||
# Имя и тег, которые будут присвоены собранному Docker-образу
|
||||
image: go-stun-server:latest
|
||||
|
||||
# Фиксированное имя контейнера в операционной системе (для удобства просмотра через `docker ps`)
|
||||
container_name: stun_server
|
||||
|
||||
# Сетевой режим: "host". Контейнер использует сетевой стек хоста напрямую.
|
||||
# Включает максимальную производительность UDP, убирает задержки и накладные расходы
|
||||
# стандартного механизма маршутизации Docker (docker-proxy). Порты пробрасывать не нужно.
|
||||
network_mode: "host"
|
||||
|
||||
# Политика перезапуска: контейнер будет автоматически перезапускаться при падении приложения,
|
||||
# сбое Docker-демона или полной перезагрузке самого VPS (если только вы не остановили его вручную).
|
||||
restart: unless-stopped
|
||||
|
||||
# Переменные окружения, которые прокидываются внутрь приложения
|
||||
environment:
|
||||
# Задаем переменную PUBLIC_IP. Конструкция \${VARIABLE:-default} означает:
|
||||
# взять значение PUBLIC_IP из файла .env системы, а если его там нет, использовать дефолтный 127.0.0.1
|
||||
- PUBLIC_IP=${PUBLIC_IP:-127.0.0.1}
|
||||
|
||||
# Секция управления ресурсами при развертывании (работает как в Swarm, так и в стандартном Compose)
|
||||
deploy:
|
||||
resources:
|
||||
# Устанавливаем жесткие лимиты, которые контейнер не сможет превысить
|
||||
limits:
|
||||
# Выделяем серверу максимум 2 процессорных ядра (ядра CPU)
|
||||
cpus: '2'
|
||||
# Ограничиваем оперативную память до 128 Мб (для STUN этого более чем достаточно)
|
||||
memory: 128M
|
||||
|
||||
# Настройка ротации и сбора логов контейнера (важно для защиты диска от переполнения)
|
||||
logging:
|
||||
# Используем стандартный драйвер логирования в JSON-файлы
|
||||
driver: "json-file"
|
||||
options:
|
||||
# Максимальный размер одного файла лога — 10 Мегабайт
|
||||
max-size: "10m"
|
||||
# Хранить не более 3 архивных файлов логов. Старые логи будут автоматически затираться.
|
||||
max-file: "3"
|
||||
Reference in New Issue
Block a user