# Все файлы хранятся в /Volume1/DockerAppsData/mixapp/ # YAML файл хранится в /Volume1/DockerYAML/mix/ services: # PostgreSQL база данных db: image: postgres:15-alpine container_name: mix_postgres restart: unless-stopped environment: - POSTGRES_USER=${DB_USER:-postgres} - POSTGRES_DB=${DB_NAME:-inventory_db} env_file: - .env.docker volumes: - ../../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: - ../../redis:/data healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 10s timeout: 5s retries: 5 networks: - mix_network # Django Web приложение web: build: context: .. dockerfile: docker/Dockerfile container_name: mix_web restart: unless-stopped command: web env_file: - .env.docker environment: - ALLOWED_HOSTS=mix.smaa.by,.mix.smaa.by,localhost,127.0.0.1 - CSRF_TRUSTED_ORIGINS=https://mix.smaa.by,https://*.mix.smaa.by - DOMAIN_NAME=mix.smaa.by - DB_HOST=db - REDIS_HOST=redis volumes: # Монтируем код приложения для горячего обновления (опционально, если нужно обновлять без пересборки) # - /Volume1/DockerAppsData/mixapp/app:/app # Медиа и статика # Медиа и статика (монтируем туда, где их ждет Django) - ../../media:/app/myproject/media - ../../static:/app/myproject/staticfiles ports: - "8000:8000" depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - mix_network # Celery Worker для обработки задач celery-worker: build: context: .. dockerfile: docker/Dockerfile container_name: mix_celery_worker restart: unless-stopped command: celery-worker env_file: - .env.docker environment: - DB_HOST=db - REDIS_HOST=redis volumes: - ..:/app - ../../media:/app/myproject/media depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - mix_network # Celery Beat для периодических задач celery-beat: build: context: .. dockerfile: docker/Dockerfile container_name: mix_celery_beat restart: unless-stopped command: celery-beat env_file: - .env.docker environment: - DB_HOST=db - REDIS_HOST=redis volumes: - ..:/app depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - mix_network networks: mix_network: driver: bridge