name: dreamweaver services: frontend: build: context: ./frontend args: NODE_BASE_IMAGE: ${NODE_BASE_IMAGE:-node:18-alpine} NGINX_BASE_IMAGE: ${NGINX_BASE_IMAGE:-nginx:alpine} NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmjs.org/} image: dreamweaver-frontend:dev container_name: dreamweaver_frontend restart: unless-stopped ports: - "52080:80" depends_on: backend: condition: service_started frontend-admin: build: context: ./admin-frontend args: NODE_BASE_IMAGE: ${NODE_BASE_IMAGE:-node:18-alpine} NGINX_BASE_IMAGE: ${NGINX_BASE_IMAGE:-nginx:alpine} NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmjs.org/} image: dreamweaver-admin-frontend:dev container_name: dreamweaver_frontend_admin restart: unless-stopped ports: - "52888:80" depends_on: backend-admin: condition: service_started backend: build: context: ./backend args: PYTHON_BASE_IMAGE: ${PYTHON_BASE_IMAGE:-python:3.11-slim} image: dreamweaver-backend:dev container_name: dreamweaver_backend restart: unless-stopped ports: - "52000:8000" env_file: ./backend/.env volumes: - backend_static:/app/static depends_on: db: condition: service_healthy redis: condition: service_started backend-admin: image: dreamweaver-backend:dev container_name: dreamweaver_backend_admin restart: unless-stopped command: ["uvicorn", "app.admin_main:app", "--host", "0.0.0.0", "--port", "8001"] ports: - "52800:8001" env_file: ./backend/.env volumes: - backend_static:/app/static depends_on: backend: condition: service_started db: condition: service_healthy redis: condition: service_started worker: image: dreamweaver-backend:dev container_name: dreamweaver_worker restart: unless-stopped command: celery -A app.core.celery_app worker --loglevel=info env_file: ./backend/.env depends_on: backend: condition: service_started db: condition: service_healthy redis: condition: service_started celery-beat: image: dreamweaver-backend:dev container_name: dreamweaver_beat restart: unless-stopped command: celery -A app.core.celery_app beat --loglevel=info env_file: ./backend/.env depends_on: backend: condition: service_started redis: condition: service_started db: image: postgres:15-alpine container_name: dreamweaver_db restart: unless-stopped environment: POSTGRES_USER: dreamweaver POSTGRES_PASSWORD: dreamweaver_password POSTGRES_DB: dreamweaver_db ports: - "52432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\""] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: dreamweaver_redis restart: unless-stopped command: redis-server --appendonly yes ports: - "52379:6379" volumes: - redis_data:/data volumes: backend_static: postgres_data: redis_data: