44 lines
2.1 KiB
YAML
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"
|