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