# Single-machine parallel certification stack (#14549, epic #14541). # GENERATED by docker/certification/generate-compose-lanes.mjs from the test # runner's own plan (`run-all-tests.mjs --plan=json --all`) — the lane # services mirror that plan's script groups; do not edit by hand. # Regenerate: node docker/certification/generate-compose-lanes.mjs # Drift check: node docker/certification/generate-compose-lanes.mjs --check # Params: cores=16 unit-shards=4 e2e-shards=2 gpu-parallel=4 # Plan scripts: test, test:e2e, test:integration, test:live, test:ui (+ cloud step) name: eliza-certification services: lane-unit-1of4: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "0-1" cpus: 2 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "unit-1of4" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test$$" TEST_SHARD: "1/4" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-unit-1of4:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-unit-2of4: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "2-3" cpus: 2 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "unit-2of4" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test$$" TEST_SHARD: "2/4" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-unit-2of4:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-unit-3of4: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "4-5" cpus: 2 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "unit-3of4" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test$$" TEST_SHARD: "3/4" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-unit-3of4:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-unit-4of4: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "6-7" cpus: 2 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "unit-4of4" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test$$" TEST_SHARD: "4/4" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-unit-4of4:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-e2e-1of2: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "8-9" cpus: 2 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "e2e-1of2" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test:e2e$$" TEST_SHARD: "1/2" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-e2e-1of2:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-e2e-2of2: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "10-11" cpus: 2 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "e2e-2of2" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test:e2e$$" TEST_SHARD: "2/2" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-e2e-2of2:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-integration: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "12" cpus: 1 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "integration" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test:integration$$" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-integration:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-live: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "13" cpus: 1 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "live" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test:live$$" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-live:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-ui: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "14" cpus: 1 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "node packages/scripts/run-all-tests.mjs --no-cloud --min-tasks=1" LANE_NAME: "ui" TEST_LANE: "pr" TEST_SCRIPT_FILTER: "^test:ui$$" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-ui:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" lane-cloud: image: ${ELIZA_CERT_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "cpu" command: - "bash" - "/repo/docker/certification/lane-entry.sh" cpuset: "15" cpus: 1 environment: BUN_INSTALL_CACHE_DIR: "/cache/bun" ELIZA_CERT_QUEUE_DIR: "/queue" LANE_COMMAND: "bun run test:cloud" LANE_NAME: "cloud" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "scratch-lane-cloud:/work" - "build-cache:/cache" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" gpu-vision: image: ${ELIZA_CERT_GPU_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "gpu" command: - "bash" - "/repo/docker/certification/gpu-entry.sh" environment: LLAMA_CONTEXT: "8192" LLAMA_PARALLEL: "4" OCR_MMPROJ: "/models/ocr/mmproj-Unlimited-OCR-F16.gguf" OCR_MODEL: "/models/ocr/Unlimited-OCR-Q4_K_M.gguf" OCR_PORT: "8090" VLM_MMPROJ: "/models/vlm/mmproj-Qwen3VL-4B-Instruct-F16.gguf" VLM_MODEL: "/models/vlm/Qwen3VL-4B-Instruct-Q4_K_M.gguf" VLM_PORT: "8091" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "${ELIZA_GPU_MODELS_DIR:-~/.cache/eliza/gpu-vision}:/models:ro" deploy: resources: reservations: devices: - driver: "nvidia" count: 1 capabilities: - "gpu" healthcheck: test: - "CMD-SHELL" - "curl -fsS http://127.0.0.1:8090/health && curl -fsS http://127.0.0.1:8091/health" interval: 10s timeout: 5s retries: 60 start_period: 120s restart: "no" gpu-queue-worker: image: ${ELIZA_CERT_GPU_IMAGE:-ghcr.io/elizaos/certification-gpu:latest} profiles: - "gpu" depends_on: gpu-vision: condition: service_healthy command: - "node" - "/repo/docker/certification/queue-worker.mjs" - "--jobs" - "/queue" - "--service" - "ocr=http://gpu-vision:8090" - "--service" - "vlm=http://gpu-vision:8091" volumes: - "${ELIZA_REPO_ROOT:-../..}:/repo:ro" - "${ELIZA_CERT_QUEUE_HOST:-./queue}:/queue" restart: "no" volumes: build-cache: {} scratch-lane-unit-1of4: {} scratch-lane-unit-2of4: {} scratch-lane-unit-3of4: {} scratch-lane-unit-4of4: {} scratch-lane-e2e-1of2: {} scratch-lane-e2e-2of2: {} scratch-lane-integration: {} scratch-lane-live: {} scratch-lane-ui: {} scratch-lane-cloud: {}