Files
octopus/docker/docker-compose.yml
Andrey Smakotin 9e1145b9ce Feature: Docker deployment configuration
- Добавлена поддержка docker-compose для развертывания
- STATIC_ROOT автоматически переключается в prod (/Volume1/DockerAppsData/npm/data/static/)
- Добавлены ALLOWED_HOSTS и CSRF_TRUSTED_ORIGINS из env переменных
- Улучшена обработка .env файла (проверка существования)
- Добавлен gunicorn в requirements.txt
- Добавлены .dockerignore, Dockerfile, docker-compose.yml
- Добавлены example файлы для .env.docker и entrypoint.sh
- Обновлен .gitignore для исключения файлов с секретами

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-08 02:10:59 +03:00

109 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.
version: '3.8'
# Все файлы хранятся в /Volume1/DockerAppsData/mixapp/
# YAML файл хранится в /Volume1/DockerYAML/mix/
services:
# PostgreSQL база данных
db:
image: postgres:15-alpine
container_name: mix_postgres
restart: unless-stopped
env_file:
- /Volume1/DockerAppsData/mixapp/app/docker/.env.docker
environment:
POSTGRES_DB: ${DB_NAME:-inventory_db}
POSTGRES_USER: ${DB_USER:-postgres}
POSTGRES_PASSWORD: ${DB_PASSWORD:-postgres}
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
volumes:
- /Volume1/DockerAppsData/mixapp/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-postgres} -d ${DB_NAME:-inventory_db}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- mix_network
# Redis для кеша и Celery брокера
redis:
image: redis:7-alpine
container_name: mix_redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- /Volume1/DockerAppsData/mixapp/redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- mix_network
# Django Web приложение
web:
build:
context: /Volume1/DockerAppsData/mixapp/app
dockerfile: docker/Dockerfile
container_name: mix_web
restart: unless-stopped
command: web
env_file:
- /Volume1/DockerAppsData/mixapp/app/docker/.env.docker
volumes:
- /Volume1/DockerAppsData/mixapp/media:/app/media
- /Volume1/DockerAppsData/mixapp/static:/app/staticfiles
ports:
- "8000:8000"
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- mix_network
# Celery Worker для обработки задач
celery-worker:
build:
context: /Volume1/DockerAppsData/mixapp/app
dockerfile: docker/Dockerfile
container_name: mix_celery_worker
restart: unless-stopped
command: celery-worker
env_file:
- /Volume1/DockerAppsData/mixapp/app/docker/.env.docker
volumes:
- /Volume1/DockerAppsData/mixapp/media:/app/media
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- mix_network
# Celery Beat для периодических задач
celery-beat:
build:
context: /Volume1/DockerAppsData/mixapp/app
dockerfile: docker/Dockerfile
container_name: mix_celery_beat
restart: unless-stopped
command: celery-beat
env_file:
- /Volume1/DockerAppsData/mixapp/app/docker/.env.docker
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- mix_network
networks:
mix_network:
driver: bridge