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 app: build: context: ./backend dockerfile: Dockerfile container_name: mealprep-app 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 volumes: pgdata: