services: redis: image: redis:7-alpine ports: - "6379:6379" backend: build: context: . dockerfile: docker/Dockerfile env_file: - .env volumes: - ./data:/data ports: - "8000:8000" command: > sh -c "if [ \"${DEV_MODE:-0}\" = \"1\" ]; then uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload; else uvicorn app.main:app --host 0.0.0.0 --port 8000; fi" depends_on: - redis worker: build: context: . dockerfile: docker/Dockerfile env_file: - .env volumes: - ./data:/data command: > sh -c "celery -A app.tasks.celery_app:celery_app worker --loglevel=INFO" depends_on: - redis beat: build: context: . dockerfile: docker/Dockerfile env_file: - .env volumes: - ./data:/data command: > sh -c "celery -A app.tasks.celery_app:celery_app beat --loglevel=INFO" depends_on: - redis