services: db: image: postgres:16-alpine container_name: mealprep-db environment: POSTGRES_DB: mealprep POSTGRES_USER: mealprep POSTGRES_PASSWORD: mealprep ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U mealprep"] interval: 5s timeout: 3s retries: 5 backend: build: context: ./backend dockerfile: Dockerfile container_name: mealprep-backend ports: - "8080:8080" environment: SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/mealprep SPRING_DATASOURCE_USERNAME: mealprep SPRING_DATASOURCE_PASSWORD: mealprep SPRING_PROFILES_ACTIVE: docker depends_on: db: condition: service_healthy frontend: build: context: ./frontend dockerfile: Dockerfile container_name: mealprep-frontend ports: - "3000:3000" environment: BACKEND_URL: http://backend:8080 depends_on: - backend volumes: pgdata: