Ctrl K
ComunidadGuías…

docker-compose.e2e.yml

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

Archivo original ↗Preguntar a KiBot
# E2E override — layered on top of docker-compose.yml, ONLY for the daily/manual
# Playwright suite. Production config is untouched: this file adds the secret-free
# mock inference service and repoints LibreChat at an E2E-only config so a chat
# exercises the REAL MCP server, ClickHouse, and Langfuse without any API key.
#
#   docker compose -f docker-compose.yml -f docker-compose.e2e.yml up -d --wait
#
# Why a config override instead of editing librechat.yaml: the mock endpoint must
# never leak into a real deployment. CONFIG_PATH points LibreChat at a NEW mount
# path (/app/librechat.e2e.yaml) so it can't collide with the prod bind mount.

services:
  mock-llm:
    image: node:22-alpine
    restart: always
    working_dir: /app
    command: ["node", "server.js"]
    environment:
      - PORT=8080
      - MOCK_MODEL=mock-model
    volumes:
      - type: bind
        source: ./e2e/mock-llm/server.js
        target: /app/server.js
        read_only: true
    healthcheck:
      test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://127.0.0.1:8080/v1/models || exit 1"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 3s

  librechat:
    depends_on:
      mock-llm:
        condition: service_healthy
    environment:
      # Load the E2E config (adds the MockLLM endpoint) from its own mount path.
      - CONFIG_PATH=/app/librechat.e2e.yaml
    volumes:
      - type: bind
        source: ./e2e/librechat.e2e.yaml
        target: /app/librechat.e2e.yaml
        read_only: true