Ctrl K
ComunidadGuías…

docker-compose.e2e.yml

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

Archivo original ↗Preguntar a KiBot
# End-to-end stack: server (web UI embedded) + the Playwright runner, all on an
# internal network with NO host ports — no collisions with a dev stack.
# Usage:
#   docker compose -f docker-compose.e2e.yml up --build --abort-on-container-exit
#   docker compose -f docker-compose.e2e.yml down -v
services:
  server:
    build:
      context: ./server
      dockerfile: Dockerfile
      target: release
      additional_contexts:
        root: .
    environment:
      NEXUL_DB_PATH: /data/nexul.db
      NEXUL_AUTH_SECRET: dev-secret-rotate-me
      NEXUL_LOG_LEVEL: warn
      NEXUL_SPA_ORIGIN: http://localhost
    volumes:
      - e2e-data:/data
    networks:
      - e2e-net

  automations:
    build:
      context: ./automations
      dockerfile: Dockerfile
      additional_contexts:
        root: .
    environment:
      NEXUL_SERVER_URL: http://server:8080
      NEXUL_AUTOMATIONS_HOST_NAME: instance
      NEXUL_CREDENTIAL_FILE: /state/credential
      # First start enrolls with the code the server writes at boot.
      NEXUL_ENROLL_CODE_FILE: /data/enroll/automations-instance
      NEXUL_LOG_LEVEL: warn
    volumes:
      - e2e-data:/data:ro
      - e2e-automations-state:/state
    networks:
      - e2e-net
    depends_on:
      - server

  # A real runner against the host docker daemon: it claims deploy jobs and
  # executes them for real (docker pull / docker run via the socket). Deployed
  # containers join the e2e-net docker network, so specs verify them by
  # container name without publishing any host port.
  runner:
    build:
      context: ./runner
      dockerfile: Dockerfile
      target: release
      additional_contexts:
        root: .
    environment:
      NEXUL_SERVER_URL: http://server:8080
      NEXUL_RUNNER_NAME: instance
      NEXUL_CREDENTIAL_FILE: /state/credential
      # First start enrolls with the code the server writes at boot.
      NEXUL_ENROLL_CODE_FILE: /data/enroll/runner-instance
      NEXUL_GIT_TOKEN: e2e-dummy
      NEXUL_LOG_LEVEL: warn
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - e2e-data:/data:ro
      - e2e-runner-state:/state
    networks:
      - e2e-net
    depends_on:
      - server

  e2e:
    build:
      context: ./web
      dockerfile: e2e.Dockerfile
    environment:
      NEXUL_BASE_URL: http://server:8080
      NEXUL_AUTH_SECRET: dev-secret-rotate-me
      NEXUL_E2E_DB: /data/nexul.db
    volumes:
      # live-mount the web source so spec/config edits don't need a rebuild;
      # node_modules is preserved via a named volume seeded from the image
      - ./web:/e2e
      - e2e-node-modules:/e2e/node_modules
      - e2e-data:/data
    networks:
      - e2e-net
    depends_on:
      - server
      - runner

networks:
  e2e-net:
    name: e2e-net

volumes:
  e2e-data:
  e2e-node-modules:
  e2e-automations-state:
  e2e-runner-state: