services: resit_backend: build: context: ./backend dockerfile: Dockerfile network: host container_name: resit_backend ports: - "8000:8000" environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_DB: ${POSTGRES_DB} POSTGRES_HOST: db POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} JWT_SECRET: ${JWT_SECRET} LOG_FILE: ${LOG_FILE} PORT: ${BACKEND_PORT} GMAIL_USER: ${GMAIL_USER} GMAIL_PASSWORD: ${GMAIL_PASSWORD} GITHUB_ID: ${GITHUB_ID} GITHUB_SECRET: ${GITHUB_SECRET} volumes: - ./backend/logs:/var/log/freetube - ./backend:/app depends_on: db: condition: service_healthy db: image: postgres:latest ports: - "5432:5432" environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - db_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 5 start_period: 30s frontend: build: context: ./frontend dockerfile: Dockerfile container_name: resit_frontend ports: - "80:80" - "443:443" environment: - VITE_API_BASE_URL=https://localhost/api depends_on: - resit_backend volumes: db_data: driver: local