Docker Compose files
Thedocker/ directory contains layered Compose files:
| File | Purpose |
|---|---|
docker-compose.yaml | Core services: gl0 (Global L0) and gl1 (DAG L1) |
docker-compose.metagraph.yaml | Metagraph services: ml0 (Currency L0), cl1, dl1 (Currency L1) |
docker-compose.test.yaml | Test network overlay — adds a shared bridge network for E2E tests |
docker-compose.metagraph-test.yaml | Test network overlay for metagraph services |
docker-compose.volumes.yaml | Named Docker volumes for gl0-data and gl1-data |
docker-compose.local-bridge.yaml | Local bridge network configuration |
docker-compose.metagraph-genesis.yaml | Genesis-mode configuration for metagraph bootstrap |
Docker Compose profiles
Each service is gated behind a Compose profile, allowing selective startup:| Profile | Service | Ports (public / p2p / cli) |
|---|---|---|
l0 | gl0 — Global L0 | 9000 / 9001 / 9002 |
l1 | gl1 — DAG L1 | 9010 / 9011 / 9012 |
ml0 | ml0 — Currency L0 | 9020 / 9021 / 9022 |
cl1 | cl1 — Currency L1 | 9030 / 9031 / 9032 |
dl1 | dl1 — Data L1 | 9040 / 9041 / 9042 |
Quick start with just
The test suite
Core service configuration
The Global L0 (gl0) and DAG L1 (gl1) services from docker-compose.yaml:
Environment variables
Create a.env file in the project root (loaded by env_file: .env):
Volume mounts and data persistence
Each node container mounts three host paths:| Mount | Container path | Purpose |
|---|---|---|
./key.p12 | /tessellation/key.p12 | PKCS12 keystore (read-only) |
./gl0-logs | /tessellation/logs | Log files |
./gl0-data | /tessellation/data | Snapshot data (persistent) |
./seedlist | /tessellation/seedlist | Peer seedlist (optional) |
./genesis.csv | /tessellation/genesis.csv | Genesis file (genesis mode only) |
docker-compose.volumes.yaml:
Peer joining
Theentrypoint.sh script handles automatic peer joining on container start. Key join parameters:
| Variable | Default | Description |
|---|---|---|
CL_DOCKER_JOIN | true | Whether to attempt joining |
CL_DOCKER_JOIN_IP | — | IP of the peer to join |
CL_DOCKER_JOIN_PORT | 9001 | P2P port of the peer |
CL_DOCKER_JOIN_ID | — | Node ID of the peer |
CL_DOCKER_JOIN_INITIAL_DELAY | 0 (L0) / 30 (L1) | Seconds to wait before first join attempt |
CL_DOCKER_JOIN_RETRIES | 10 | Number of join retries |
CL_DOCKER_JOIN_DELAY | 10 | Seconds between retries |
http://localhost:<cli-port>/cluster/join.
Multi-node setup
To run a complete metagraph stack (L0 + Currency L0 + Currency L1):just commands which manage profile selection automatically based on test requirements.