version: '3.8' services: # Backend services web: build: context: ./Backend/app dockerfile: Dockerfile.prod command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000" volumes: - static_volume:/usr/src/app/staticfiles - media_volume:/usr/src/app/media expose: - 8000 env_file: - ./Backend/.env.prod depends_on: - db ports: - 8000:8000 db: restart: always image: postgres volumes: - postgres_data:/var/lib/postgresql/data/ env_file: - ./Backend/.env.prod.db # Frontend services traefik: image: traefik:v2.10 command: - "--api.insecure=true" - "--providers.docker=true" - "--entrypoints.web.address=:80" ports: - "80:80" - "8080:8080" # For Traefik dashboard volumes: - /var/run/docker.sock:/var/run/docker.sock react-app: build: ./Frontend labels: - "traefik.enable=true" - "traefik.http.routers.react-app.rule=Host(`localhost`)" - "traefik.http.routers.react-app.entrypoints=web" environment: - CHOKIDAR_USEPOLLING=true volumes: postgres_data: static_volume: media_volume: