version: '3.8' services: postgres: image: kartoza/postgis:latest platform: linux/arm64 container_name: line-of-sight-db environment: - POSTGRES_DB=line_of_sight - POSTGRES_USER=line_of_sight - POSTGRES_PASS=line_of_sight_pass - ALLOW_IP_RANGE=0.0.0.0/0 ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql - ./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: - "3050:3050" environment: - VITE_API_URL=http://localhost:3001/api depends_on: - backend volumes: - ./frontend:/app - /app/node_modules volumes: pgdata: