Ctrl K
ComunidadGuías…

docker-compose.yml

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  # --- Fleet walkthrough: two plain PostgreSQL instances ---
  pg1:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: postgres
    ports:
      - "5433:5432"
    volumes:
      - pg1data:/var/lib/postgresql/data
    command: >
      postgres
        -c shared_preload_libraries=pg_stat_statements
        -c pg_stat_statements.track=all
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

  pg2:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: postgres
    ports:
      - "5434:5432"
    volumes:
      - pg2data:/var/lib/postgresql/data
    command: >
      postgres
        -c shared_preload_libraries=pg_stat_statements
        -c pg_stat_statements.track=all
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

  # --- Single monitored instance for the sidecar below ---
  pg_sage:
    image: postgres:17
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
    command: >
      postgres
        -c shared_preload_libraries=pg_stat_statements
        -c pg_stat_statements.track=all
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

  sidecar:
    build: ./sidecar
    # The dashboard's "Restart now" exits with code 42 so startup-only
    # settings take effect; the restart policy relaunches it, and
    # SAGE_SUPERVISED=1 tells the sidecar a supervisor exists (G5-B09).
    restart: unless-stopped
    depends_on:
      pg_sage:
        condition: service_healthy
    environment:
      SAGE_DATABASE_URL: postgres://postgres:postgres@pg_sage:5432/postgres?sslmode=disable
      SAGE_MODE: standalone
      SAGE_SUPERVISED: "1"
      SAGE_PROMETHEUS_PORT: "9187"
      SAGE_RATE_LIMIT: "60"
    ports:
      - "8080:8080"   # API + Dashboard
      - "9187:9187"   # Prometheus metrics

volumes:
  pgdata:
  pg1data:
  pg2data: