version: '3.8' services: postgres: image: postgis/postgis:15-3.3-alpine container_name: line-of-sight-db environment: POSTGRES_DB: line_of_sight POSTGRES_USER: line_of_sight POSTGRES_PASSWORD: line_of_sight_pass ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data - ./docker/init.sql:/docker-entrypoint-initdb.d/init.sql healthcheck: test: ["CMD-SHELL", "pg_isready -U line_of_sight"] interval: 5s timeout: 5s retries: 5 backend: build: context: ./backend dockerfile: Dockerfile container_name: line-of-sight-backend ports: - "3001:3001" environment: - DATABASE_URL=postgresql://line_of_sight:line_of_sight_pass@postgres:5432/line_of_sight - PORT=3001 depends_on: postgres: condition: service_healthy volumes: - ./backend:/app - /app/node_modules frontend: build: context: ./frontend dockerfile: Dockerfile container_name: line-of-sight-frontend ports: - "3000:3000" environment: - REACT_APP_API_URL=http://localhost:3001/api depends_on: - backend volumes: - ./frontend:/app - /app/node_modules volumes: pgdata: