48 lines
1.5 KiB
YAML
48 lines
1.5 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
etpgrf-backend:
|
|
build: .
|
|
# Запускаем collectstatic перед стартом сервера, чтобы обновить статику в volume
|
|
command: sh -c "python etpgrf_site/manage.py collectstatic --noinput && gunicorn --bind 0.0.0.0:8000 --chdir /app/etpgrf_site etpgrf_site.wsgi"
|
|
|
|
volumes:
|
|
# Монтируем папку с базой данных
|
|
- ./data:/app/data
|
|
# Монтируем статику в именованный том, чтобы Nginx мог её читать
|
|
- static_volume:/app/public/static_collected
|
|
# Монтируем медиа в /app/media (унификация путей)
|
|
- ./media:/app/media
|
|
|
|
env_file:
|
|
- .env
|
|
|
|
# Настройка ротации логов (чтобы не забить диск)
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
etpgrf-nginx:
|
|
image: nginx:1.25-alpine
|
|
volumes:
|
|
- ./config/nginx/etpgrf--internal-nginx.conf:/etc/nginx/nginx.conf:ro
|
|
- static_volume:/app/public/static_collected
|
|
# Nginx тоже должен видеть медиа
|
|
- ./media:/app/media
|
|
ports:
|
|
- "8000:80" # Слушаем 8000 снаружи, проксируем на 80 внутри
|
|
depends_on:
|
|
- etpgrf-backend
|
|
|
|
# Настройка ротации логов
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
volumes:
|
|
static_volume:
|