services: db: image: postgres:15 environment: POSTGRES_DB: creditdb POSTGRES_USER: credituser POSTGRES_PASSWORD: creditpass volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U credituser -d creditdb"] interval: 2s timeout: 5s retries: 10 redis: image: redis:7 ports: - "6379:6379" web: build: . # Use sh: bind mount overwrites /app and host files may not be +x command: ["sh", "/app/entrypoint.sh"] volumes: - .:/app ports: - "8000:8000" environment: DB_NAME: creditdb DB_USER: credituser DB_PASSWORD: creditpass DB_HOST: db DB_PORT: 5432 CELERY_BROKER_URL: redis://redis:6379/0 depends_on: db: condition: service_healthy redis: condition: service_started celery_worker: build: . command: ["sh", "/app/celery-entrypoint.sh"] volumes: - .:/app environment: DB_NAME: creditdb DB_USER: credituser DB_PASSWORD: creditpass DB_HOST: db DB_PORT: 5432 CELERY_BROKER_URL: redis://redis:6379/0 depends_on: db: condition: service_healthy redis: condition: service_started volumes: postgres_data: