services: backend: build: context: ./backend container_name: todo-backend ports: - "8000:8000" env_file: - .env volumes: - ./backend:/app - /app/__pycache__ restart: unless-stopped environment: - PYTHONPATH=/app frontend: build: context: . dockerfile: Dockerfile.frontend args: - NEXT_PUBLIC_FIREBASE_API_KEY=${NEXT_PUBLIC_FIREBASE_API_KEY:-} - NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=${NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN:-} - NEXT_PUBLIC_FIREBASE_PROJECT_ID=${NEXT_PUBLIC_FIREBASE_PROJECT_ID:-} - NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=${NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET:-} - NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=${NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID:-} - NEXT_PUBLIC_FIREBASE_APP_ID=${NEXT_PUBLIC_FIREBASE_APP_ID:-} ports: - "3000:3000" depends_on: - backend environment: # This assumes your frontend needs to know the backend's URL NEXT_PUBLIC_API_URL: "http://backend:8000"