version: "3.7" services: backend: build: context: . dockerfile: backend/Dockerfile.prod image: doccano_backend:prod volumes: - static_volume:/backend/staticfiles - media:/backend/media environment: ADMIN_USERNAME: "${ADMIN_USERNAME}" ADMIN_PASSWORD: "${ADMIN_PASSWORD}" ADMIN_EMAIL: ${ADMIN_EMAIL} CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq" DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable" ALLOW_SIGNUP: "False" DEBUG: "False" depends_on: - postgres networks: - network-backend - network-frontend celery: build: context: . dockerfile: backend/Dockerfile.prod image: doccano_celery:prod volumes: - media:/backend/media entrypoint: ["/opt/bin/prod-celery.sh"] environment: PYTHONUNBUFFERED: "1" CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq" DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable" depends_on: - postgres - rabbitmq networks: - network-backend rabbitmq: image: rabbitmq:3.8-alpine environment: RABBITMQ_DEFAULT_USER: "${RABBITMQ_DEFAULT_USER}" RABBITMQ_DEFAULT_PASS: "${RABBITMQ_DEFAULT_PASS}" ports: - 5672:5672 networks: - network-backend nginx: build: context: . dockerfile: nginx/Dockerfile environment: API_URL: "http://backend:8000" GOOGLE_TRACKING_ID: "" volumes: - static_volume:/static - media:/media ports: - 80:8080 depends_on: - backend networks: - network-frontend postgres: image: postgres:13.3-alpine volumes: - postgres_data:/var/lib/postgresql/data/ environment: POSTGRES_USER: "${POSTGRES_USER}" POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}" POSTGRES_DB: "${POSTGRES_DB}" networks: - network-backend volumes: postgres_data: static_volume: media: networks: network-backend: network-frontend: