name: ava-sdk-test services: # Gateway: REST API on :8080, gRPC on :2206. Tests talk to the REST # surface via AVS_REST_URL (defaults to http://localhost:8080/api/v1 # — see tests/utils/env.ts). DOCKER_IMAGE_TAG pins a specific build # of https://github.com/AvaProtocol/EigenLayer-AVS — set in CI via # .github/workflows/dev-test-on-pr.yml. gateway: # host.docker.internal lets a node running in this container dial a server # on the host — specifically tests/utils/stubServer.ts, which stands in for # the third-party endpoints these tests used to hit. host-gateway is what # makes the name resolve on Linux (CI); Docker Desktop provides it anyway. extra_hosts: - "host.docker.internal:host-gateway" image: avaprotocol/avs-dev:${DOCKER_IMAGE_TAG:-latest} command: - "aggregator" - "--config" - "/app/config/gateway.runtime.yaml" ports: - "2206:2206" - "8080:8080" volumes: - ./config:/app/config # Per-chain worker for Sepolia. The gateway routes tasks here via # chains[].worker_addr ("worker-sepolia:50051"). Health check on # :8090 confirms the worker has registered with the gateway. worker-sepolia: # host.docker.internal lets a node running in this container dial a server # on the host — specifically tests/utils/stubServer.ts, which stands in for # the third-party endpoints these tests used to hit. host-gateway is what # makes the name resolve on Linux (CI); Docker Desktop provides it anyway. extra_hosts: - "host.docker.internal:host-gateway" image: avaprotocol/avs-dev:${DOCKER_IMAGE_TAG:-latest} command: - "worker" - "--config" - "/app/config/worker-sepolia.runtime.yaml" ports: - "50051:50051" - "8090:8090" volumes: - ./config:/app/config depends_on: - gateway # Registered test operator (0x997E5D40…, EIP-55 checksummed) so tasks with on-chain triggers # (block/event) actually fire — without a connected operator the aggregator # returns "no connected operator currently monitors chain_id=11155111". The # ECDSA/BLS keystores are written to config/.operator-keys/ from GitHub # secrets in CI; their passwords come from OPERATOR_{ECDSA,BLS}_KEY_PASSWORD. operator: # host.docker.internal lets a node running in this container dial a server # on the host — specifically tests/utils/stubServer.ts, which stands in for # the third-party endpoints these tests used to hit. host-gateway is what # makes the name resolve on Linux (CI); Docker Desktop provides it anyway. extra_hosts: - "host.docker.internal:host-gateway" image: avaprotocol/avs-dev:${DOCKER_IMAGE_TAG:-latest} command: - "operator" - "--config" - "/app/config/operator-sepolia.runtime.yaml" environment: OPERATOR_ECDSA_KEY_PASSWORD: ${OPERATOR_ECDSA_KEY_PASSWORD} OPERATOR_BLS_KEY_PASSWORD: ${OPERATOR_BLS_KEY_PASSWORD} volumes: - ./config:/app/config depends_on: - gateway