version: "3.9" # Default profile (sqlite): docker compose up --build # Postgres profile: docker compose --profile postgres up --build services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: mcp_arc POSTGRES_PASSWORD: mcp_arc POSTGRES_DB: mcp_arc volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U mcp_arc -d mcp_arc"] interval: 5s timeout: 5s retries: 10 profiles: ["postgres"] mcp-arc: build: . ports: - "8080:8080" volumes: - ./data:/data # Override the upstream to point at your own MCP server. # Mount your upstream server into the container and adjust the command. command: - "mcp-arc" - "--config" - "/etc/mcp-arc/config.docker.yaml" - "--upstream" - "node" - "/upstream/server.js" mcp-arc-postgres: build: . ports: - "8081:8080" depends_on: postgres: condition: service_healthy command: - "mcp-arc" - "--config" - "/etc/mcp-arc/config.docker-postgres.yaml" - "--upstream" - "node" - "/upstream/server.js" profiles: ["postgres"] volumes: pgdata: