Files
timelaps/docker-compose.yml
ack 4b6a0f9c96
Some checks failed
Deploy timelaps / deploy (push) Failing after 1s
Initial commit: setup deploy workflow
2026-04-19 09:46:18 +03:00

62 lines
2.9 KiB
YAML
Raw 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:
- ENV_TYPE=server
env_file:
- .env # Прокидывает все секреты и настройки внутрь Python
volumes:
# Общие папки для статики и картинок. Сюда Django их складывает.
- staticfiles:/app/staticfiles
- mediafiles:/app/media
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
ports:
- "80:80" # Единственная "дырка" в мир: порт 80 сервера -> порт 80 контейнера
depends_on:
- web # Nginx запустится только после Django
# Описание "жестких дисков" (Volumes), которые живут дольше контейнеров
volumes:
postgres_data: # Для данных БД
staticfiles: # Для CSS, JS и картинок интерфейса (collectstatic)
mediafiles: # Для загруженных тобой чертежей и фото
# Подключение NFS-шары напрямую в Docker
nfs_motioneye:
driver: local
driver_opts:
type: nfs
# IP адрес твоего NAS или сервера, где лежит шара
o: addr=192.168.1.138,rw,nolock,soft
# Путь к папке на самом NFS сервере
device: ":/VideoStreaming"