volumes: pgdata: services: backend: image: ecco-backend:latest build: ./backend environment: - "DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT:-5432}/${POSTGRES_DATABASE}" - "DB_EXCLUDE_TABLES=county,tract" env_file: - .env volumes: - ./data:/data healthcheck: test: ["CMD-SHELL", "curl -o /dev/null -sf http://localhost:8000/healthz || exit 1"] interval: 15s timeout: 30s retries: 5 start_period: 30s depends_on: memcached: condition: service_started db: condition: service_healthy # used by the backend to cache responses so they don't have to be recomputed memcached: image: memcached:1.6 frontend: image: ecco-frontend build: ./frontend command: bun run build env_file: - ./frontend/.env db: build: ./services/postgres platform: linux/amd64 # image: postgis/postgis:15-3.3 env_file: - .env environment: - POSTGRES_DB=${POSTGRES_DATABASE} - PGUSER=${POSTGRES_USER} - SKIP_DB_LOAD=${SKIP_DB_LOAD:-0} volumes: - pgdata:/var/lib/postgresql/data - ./services/postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./services/postgres/docker-entrypoint-postinit.d:/docker-entrypoint-postinit.d - ./db-exports:/db-exports healthcheck: test: ["CMD-SHELL", "/opt/healthcheck.sh || exit 1"] interval: 5s timeout: 60s retries: 5 start_period: 2m