services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: keeper POSTGRES_PASSWORD: keeper POSTGRES_DB: fba_keeper ports: - "15432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U keeper -d fba_keeper"] interval: 5s timeout: 3s retries: 10 keeper: build: ./keeper env_file: - ./keeper/.env environment: DATABASE_URL: postgresql://keeper:keeper@postgres:5432/fba_keeper METRICS_PORT: 9464 ports: - "9464:9464" depends_on: postgres: condition: service_healthy restart: unless-stopped indexer: build: ./indexer env_file: - ./indexer/.env environment: PORT: 3001 DATABASE_URL: postgresql://keeper:keeper@postgres:5432/fba_keeper ports: - "3001:3001" depends_on: postgres: condition: service_healthy restart: unless-stopped prometheus: image: prom/prometheus:latest volumes: - ./infra/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro ports: - "9090:9090" depends_on: - keeper grafana: image: grafana/grafana:latest environment: GF_SECURITY_ADMIN_PASSWORD: admin GF_AUTH_ANONYMOUS_ENABLED: "true" volumes: - ./infra/grafana/provisioning:/etc/grafana/provisioning:ro - grafana-data:/var/lib/grafana ports: - "3002:3000" depends_on: - prometheus volumes: pgdata: grafana-data: