services: postgres: image: postgres:17-alpine environment: POSTGRES_DB: fieldlens POSTGRES_USER: fieldlens POSTGRES_PASSWORD: fieldlens-local-only healthcheck: test: ["CMD-SHELL", "pg_isready -U fieldlens"] interval: 5s timeout: 3s retries: 10 volumes: - fieldlens-pg:/var/lib/postgresql/data fieldlens: build: context: . args: VITE_API_BASE_URL: "" VITE_KEYCLOAK_ISSUER: ${VITE_KEYCLOAK_ISSUER:-https://auth.example.invalid/realms/example} VITE_KEYCLOAK_CLIENT_ID: fieldlens FIELDLENS_VERSION: local ports: - "3000:3000" environment: PORT: "3000" DATABASE_URL: postgresql://fieldlens:fieldlens-local-only@postgres:5432/fieldlens KEYCLOAK_ISSUER: ${KEYCLOAK_ISSUER:-https://auth.example.invalid/realms/example} KEYCLOAK_AUDIENCE: fieldlens-api KEYCLOAK_BROWSER_CLIENT_ID: fieldlens KEYCLOAK_MACHINE_CLIENT_ID: fieldlens-integration FIELDLENS_TENANT_ID: fieldlens-production FIELDLENS_ENV: local WEB_ORIGIN: http://localhost:3000 STATIC_DIR: /app/web depends_on: postgres: condition: service_healthy volumes: fieldlens-pg: