feat: configure docker-compose, caddy and drone-ci
This commit is contained in:
73
docker-compose.yml
Normal file
73
docker-compose.yml
Normal file
@@ -0,0 +1,73 @@
|
||||
# Версия синтаксиса Docker Compose
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
# 1. Веб-сервер и реверс-прокси Caddy
|
||||
caddy:
|
||||
image: caddy:2-alpine
|
||||
container_name: platform-caddy
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
# Публикуем стандартные порты для веб-трафика
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "443:443/udp" # Для HTTP/3
|
||||
volumes:
|
||||
# Подключаем наш файл конфигурации Caddy
|
||||
- ./Caddyfile:/etc/caddy/Caddyfile
|
||||
# Подключаем папки с файлами, которые Caddy будет раздавать
|
||||
- ./data/frontend:/srv/frontend # Статика фронтенда
|
||||
- ./data/textures:/srv/files/textures # Скины и плащи
|
||||
- ./data/modpack_files:/srv/files/modpacks # Файлы модпаков
|
||||
# Именованные тома для персистентных данных Caddy (SSL-сертификаты и т.д.)
|
||||
- caddy_data:/data
|
||||
- caddy_config:/config
|
||||
networks:
|
||||
- platform-net
|
||||
|
||||
# 2. Бэкенд-сервер на Go
|
||||
backend:
|
||||
# Образ будет собираться и публиковаться в Gitea Registry нашим CI/CD
|
||||
image: gitea.mrixs.me/minecraft-platform/backend:latest
|
||||
container_name: platform-backend
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- postgres # Запускать только после старта базы данных
|
||||
env_file:
|
||||
- .env # Подключаем файл с секретными переменными (пароли, ключи)
|
||||
networks:
|
||||
- platform-net
|
||||
|
||||
# 3. Вспомогательный сервис для измерения пинга
|
||||
ping-helper:
|
||||
image: gitea.mrixs.me/minecraft-platform/ping-helper:latest
|
||||
container_name: platform-ping-helper
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- platform-net
|
||||
|
||||
# 4. База данных PostgreSQL
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
container_name: platform-postgres
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
# Именованный том для хранения данных БД
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
# Монтируем папку со скриптами миграций для возможного ручного запуска
|
||||
- ./scripts/migrations:/docker-entrypoint-initdb.d
|
||||
env_file:
|
||||
- .env # Пароли и имя БД также берем из .env
|
||||
networks:
|
||||
- platform-net
|
||||
|
||||
# Определяем именованные тома для хранения данных между перезапусками контейнеров
|
||||
volumes:
|
||||
postgres_data:
|
||||
caddy_data:
|
||||
caddy_config:
|
||||
|
||||
# Определяем общую сеть для взаимодействия контейнеров по именам сервисов
|
||||
networks:
|
||||
platform-net:
|
||||
driver: bridge
|
||||
Reference in New Issue
Block a user