version: "3.9" services: db: image: postgres:16-alpine container_name: docengine_db environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: "M@tr!x#149@dm!N" POSTGRES_DB: document_engine ports: - "7925:5432" volumes: - docengine_pgdata:/var/lib/postgresql/data - ./sql/001_create_schema.sql:/docker-entrypoint-initdb.d/001_create_schema.sql healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d document_engine"] interval: 10s timeout: 5s retries: 5 networks: - docengine_net redis: image: redis:7-alpine container_name: docengine_redis ports: - "6379:6379" volumes: - docengine_redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 networks: - docengine_net app: build: context: . target: app container_name: docengine_app env_file: - .env environment: DB_HOST: db DB_PORT: 5432 REDIS_HOST: redis CELERY_BROKER_URL: redis://redis:6379/0 CELERY_RESULT_BACKEND: redis://redis:6379/1 ports: - "7989:7989" volumes: - ./storage:/app/storage depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - docengine_net worker: build: context: . target: worker container_name: docengine_worker env_file: - .env environment: DB_HOST: db DB_PORT: 5432 REDIS_HOST: redis CELERY_BROKER_URL: redis://redis:6379/0 CELERY_RESULT_BACKEND: redis://redis:6379/1 volumes: - ./storage:/app/storage depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - docengine_net volumes: docengine_pgdata: docengine_redis_data: networks: docengine_net: driver: bridge