Files
timelaps/docker-compose.yml
ack c220a3efca
All checks were successful
Deploy timelaps / deploy (push) Successful in 5s
вынес базу из контейнера, чтоб не перетиралась
2026-04-19 20:11:29 +03:00

58 lines
2.9 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: prodman # Имя проекта, которое будет префиксом для всех контейнеров и сетей
services:
# --- БАЗА ДАННЫХ ---
# db:
# image: postgres:15-alpine # Легкий образ Postgres на базе Alpine Linux
# restart: unless-stopped # Перезапускать всегда, кроме случаев, когда ты сам его выключил
# environment:
# # Данные тянутся из твоего файла .env
# - POSTGRES_DB=${DB_NAME}
# - POSTGRES_USER=${DB_USER}
# - POSTGRES_PASSWORD=${DB_PASS}
# volumes:
# # Храним базу в именованном томе, чтобы данные не пропали при удалении контейнера
# - postgres_data:/var/lib/postgresql/data
# --- ПРИЛОЖЕНИЕ (DJANGO) ---
web:
build: . # Собирает образ из Dockerfile в текущей папке
restart: unless-stopped
environment:
- ALLOWED_HOSTS=192.168.1.136,localhost,127.0.0.1,timelaps.tertelius.space
- SQLITE_PATH=/app/data/db.sqlite3
env_file:
- .env # Прокидывает все секреты и настройки внутрь Python
volumes:
# Общие папки для статики и картинок. Сюда Django их складывает.
- staticfiles:/app/staticfiles
- mediafiles:/app/media
- dbdata:/app/data
- /mnt/videoshare/timelaps:/app/storage
expose:
- "8000" # Открывает порт ТОЛЬКО внутри сети Docker для Nginx
# --- ВЕБ-СЕРВЕР (ФАСАД) ---
nginx:
image: nginx:1.25-alpine
restart: unless-stopped
volumes:
# Основной конфиг маршрутизации
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
# Читаем статику и медиа, которые подготовил контейнер 'web'
# :ro (read-only) — защита: даже если Nginx взломают, файлы не удалят
- staticfiles:/app/staticfiles:ro
- mediafiles:/app/media:ro
- /mnt/videoshare/timelaps/timelapses:/app/timelapses:ro
ports:
- "80:80" # Единственная "дырка" в мир: порт 80 сервера -> порт 80 контейнера
depends_on:
- web # Nginx запустится только после Django
# Описание "жестких дисков" (Volumes), которые живут дольше контейнеров
volumes:
staticfiles: # Для CSS, JS и картинок интерфейса (collectstatic)
mediafiles: # Для загруженных тобой чертежей и фото
dbdata: # Для SQLite базы, чтобы не терялась при пересоздании контейнеров