version: "3.8" services: frontend: pull_policy: never env_file: - .env build: context: frontend dockerfile: Dockerfile.dev args: - NEXT_PUBLIC_ENV=local - NEXT_PUBLIC_BACKEND_URL=${NEXT_PUBLIC_BACKEND_URL} - NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL} - NEXT_PUBLIC_SUPABASE_ANON_KEY=${NEXT_PUBLIC_SUPABASE_ANON_KEY} - NEXT_PUBLIC_CMS_URL=${NEXT_PUBLIC_CMS_URL} - NEXT_PUBLIC_FRONTEND_URL=${NEXT_PUBLIC_FRONTEND_URL} container_name: web depends_on: - backend-core restart: always volumes: - ./frontend/:/app/ ports: - 3000:3000 backend-core: image: backend-base pull_policy: never env_file: - .env build: context: backend dockerfile: Dockerfile.dev container_name: backend-core healthcheck: test: [ "CMD", "curl", "http://localhost:5050/healthz" ] command: - "uvicorn" - "main:app" - "--reload" - "--host" - "0.0.0.0" - "--port" - "5050" - "--workers" - "1" restart: always volumes: - ./backend/:/code/ ports: - 5050:5050 redis: image: redis:latest container_name: redis restart: always ports: - 6379:6379 worker: pull_policy: never image: backend-base env_file: - .env build: context: backend dockerfile: Dockerfile.dev container_name: worker command: celery -A celery_worker worker -l info restart: always depends_on: - redis beat: image: backend-base pull_policy: never env_file: - .env build: context: backend dockerfile: Dockerfile.dev container_name: beat command: celery -A celery_worker beat -l info restart: always depends_on: - redis flower: image: backend-base pull_policy: never env_file: - .env build: context: backend dockerfile: Dockerfile.dev container_name: flower command: celery -A celery_worker flower -l info --port=5555 restart: always depends_on: - redis - worker - beat ports: - 5555:5555