intrabot/deploy/docker-compose.yml
2026-03-15 21:36:03 +03:00

44 lines
2.1 KiB
YAML

# ─────────────────────────────────────────────────────────────────────────────
# ПРОДАКШН docker-compose.yml — размещать на сервере в /opt/intradbot/
# ─────────────────────────────────────────────────────────────────────────────
#
# Первоначальный запуск:
# mkdir -p /opt/intradbot/{data,ssl}
# cp deploy/docker-compose.yml /opt/intradbot/docker-compose.yml
# cp .env.example /opt/intradbot/.env && nano /opt/intradbot/.env
# cp /path/to/cert.pem /opt/intradbot/ssl/
# cp /path/to/key.pem /opt/intradbot/ssl/
# docker login git.example.com
# cd /opt/intradbot && docker compose up -d
#
# Обновление (вручную, если нет CI):
# cd /opt/intradbot && docker compose pull && docker compose up -d
#
# Полезные команды:
# docker compose logs -f — логи в реальном времени
# docker compose ps — статус
# docker compose exec intradbot bash
# ─────────────────────────────────────────────────────────────────────────────
services:
intradbot:
image: git.example.com/YOUR_USER/intradbot:latest # ← замени на свой хост/юзер
restart: always
env_file: .env
ports:
- "8080:8080"
volumes:
- ./data:/app/data # SQLite БД
- ./ssl:/app/ssl:ro # cert.pem + key.pem
pull_policy: always
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8080/health')"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "5"