-
Notifications
You must be signed in to change notification settings - Fork 5
/
docker-compose.yml
110 lines (105 loc) · 3.84 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
services:
beacond:
image: ghcr.io/rollkit/beacon-kit:v0.1.3
container_name: beacond
# environment:
# - TESTAPP_FILES_DIR=/beacon-kit/testing/files # Add the actual path
# - JWT_SECRET_PATH=${TESTAPP_FILES_DIR}/jwt.hex
volumes:
- ./testing/files:/beacon-kit/testing/files
- ./.tmp:/beacon-kit/.tmp
- /var/run/docker.sock:/var/run/docker.sock
entrypoint: /beacon-kit/testing/files/entrypoint.sh
depends_on:
celestia-network-validator:
condition: service_healthy
celestia-network-bridge:
condition: service_healthy
reth:
condition: service_started
networks:
- beacon-network
reth:
image: ghcr.io/paradigmxyz/reth # Use the official Reth image
container_name: reth
ports:
- "30303:30303" # P2P port
- "8545:8545" # HTTP port
- "8551:8551" # Auth RPC port
volumes:
- ./testing/files:/testapp_files # Mount the directory for test app files
- ./.tmp:/.tmp # Mount a temporary directory for data
command: |
node
--chain /testapp_files/eth-genesis.json
--http
--http.addr 0.0.0.0
--http.api eth,net
--authrpc.addr 0.0.0.0
--authrpc.jwtsecret /testapp_files/jwt.hex
--datadir /.tmp/eth-home
--ipcpath /.tmp/eth-home/eth-engine.ipc
networks:
- beacon-network
celestia-network-validator:
image: ghcr.io/celestiaorg/celestia-app:v3.0.0-mocha
container_name: celestia-network-validator
volumes:
- ./.tmp/celestia-validator:/home/celestia
- ./testing/files/celestia-validator:/testapp_files
ports:
- "9090:9090"
- "26656:26656"
- "26657:26657"
entrypoint: /testapp_files/entrypoint.sh
healthcheck:
test: ["CMD-SHELL", "/bin/sh -c 'BLOCK_HEIGHT=$(curl -sf http://localhost:26657/status | jq -r .result.sync_info.latest_block_height); if [ \"$$BLOCK_HEIGHT\" -gt 1 ]; then exit 0; else echo \"Block height too low: $$BLOCK_HEIGHT\"; exit 1; fi'"]
interval: 1s
timeout: 5s
retries: 10
start_period: 5s
networks:
- beacon-network
celestia-network-bridge:
image: ghcr.io/celestiaorg/celestia-node:v0.20.1-mocha
container_name: celestia-network-bridge
environment:
- P2P_NETWORK=private
- "CELESTIA_CUSTOM=private:BFCEC14C1A50F3549777ED9EF350A9D79BE826C7836CD4FBEFE9C9C4F61A111F"
volumes:
- ./testing/files/celestia-bridge:/testapp_files
- ./.tmp/celestia-bridge:/home/celestia
entrypoint: /testapp_files/entrypoint.sh
command: celestia bridge start --p2p.network private --core.ip celestia-network-validator --rpc.addr 0.0.0.0 --rpc.port 26658 --keyring.keyname bridge
ports:
- "26658:26658"
- "2121:2121"
depends_on:
celestia-network-validator:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "AUTH_TOKEN=$(celestia bridge auth read --node.store=/home/celestia 2>/dev/null | tail -n 1); OUTPUT=$(curl -sf --max-time 0.5 -X POST -H \"Content-type: application/json\" -H \"Accept: application/json\" -H \"Authorization: Bearer $$AUTH_TOKEN\" -d '{\"id\":1,\"jsonrpc\":\"2.0\",\"method\":\"header.SyncWait\",\"params\":[]}' http://0.0.0.0:26658); if [ $$? -eq 0 ]; then exit 0; else echo \"Catching up. $$OUTPUT\"; exit 1; fi "]
interval: 1s
timeout: 5s
retries: 10
start_period: 5s
networks:
- beacon-network
simapp-validator:
image: ghcr.io/celestiaorg/simapp:latest
container_name: simapp-validator
volumes:
- ./.tmp/simapp-validator:/home/celestia
- ./testing/files/simapp-validator:/testapp_files
entrypoint: /testapp_files/entrypoint.sh
ports:
- "9190:9090"
- "5123:26657"
networks:
- beacon-network
networks:
beacon-network:
driver: bridge
ipam:
config:
- subnet: 172.16.0.0/24