services: backend: build: context: ./backend dockerfile: Dockerfile ports: - "8000:8000" volumes: - ./backend/media:/app/media - ./backend/db.sqlite3:/app/db.sqlite3 - ./backend/staticfiles:/app/staticfiles env_file: - ./backend/.env environment: - DJANGO_SETTINGS_MODULE=wncc_backend.settings depends_on: - db restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health/"] interval: 30s timeout: 10s retries: 3 frontend: build: context: ./frontend dockerfile: Dockerfile args: - NODE_ENV=production ports: - "3000:80" env_file: - ./frontend/.env depends_on: - backend restart: unless-stopped healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:80/health"] interval: 30s timeout: 10s retries: 3 db: image: postgres:15-alpine volumes: - postgres_data:/var/lib/postgresql/data/ environment: - POSTGRES_DB=wncc_db - POSTGRES_USER=wncc_user - POSTGRES_PASSWORD=wncc_password ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U wncc_user -d wncc_db"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped volumes: postgres_data: networks: default: driver: bridge