-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
216 lines (206 loc) · 7.31 KB
/
docker-compose.yaml
File metadata and controls
216 lines (206 loc) · 7.31 KB
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
services:
neox-node:
container_name: bridge-devnet-neox
build:
context: ./go-ethereum
dockerfile: ../neox.Dockerfile
ports:
- '8562:8562'
healthcheck:
test: [ "CMD", "sh", "-c", "nc -z localhost 8562" ]
interval: 3s
timeout: 2s
retries: 20
start_period: 5s
init: true # This ensures proper signal handling - https://github.com/krallin/tini/issues/8#issuecomment-146135930
command: [ "sh", "-c", "make RESTRICTED_NETWORK=0.0.0.0/0 privnet_start && tail -F ./privnet/single/node1/geth_node.log" ]
neox-funding:
container_name: bridge-devnet-neox-funding
image: node:20
depends_on:
- neox-node
volumes:
- ./tools:/app/tools
- ./go-ethereum:/app/go-ethereum
working_dir: /app/tools/neox-funding
environment:
- NEOX_RPC_URL=http://neox-node:8562
command: [
"sh", "-c",
"npm install && node fund-neox-accounts.js"
]
restart: "no"
neox-contracts:
container_name: bridge-devnet-deploy-neox-message-bridge
build:
dockerfile_inline: |
FROM node:20
RUN apt-get update && apt-get install -y jq
depends_on:
neox-node:
condition: service_started
neox-funding:
condition: service_completed_successfully
volumes:
- ./bridge-evm-contracts:/app
- ./tools:/tools
- ./tools/neox-funding/neox-wallets:/app/wallets
working_dir: /app
environment:
- NEOX_RPC_URL=http://neox-node:8562
- DEPLOYER_WALLET_JSON=/app/wallets/deployer.json
command: [ "bash", "/tools/deploy/deploy-neox-message-bridge-contracts.sh" ]
init: true
restart: "no"
neon3-node:
container_name: bridge-devnet-neon3
image: ghcr.io/axlabs/neo3-privatenet-docker/neo-cli-with-plugins:neo-node-3.9.1
ports:
- '40332:40332'
healthcheck:
test: [ "CMD-SHELL", "curl -sSf -X POST http://127.0.0.1:40332 \
-H 'Content-Type: application/json' \
-d '{\"jsonrpc\":\"2.0\",\"method\":\"getversion\",\"params\":[],\"id\":1}' \
| grep -q 'Neo'" ]
interval: 3s
timeout: 2s
retries: 20
start_period: 5s
volumes:
- ./neon3-config/config-consensus.privatenet3.json:/neo-cli/config.json:ro
- ./neon3-config/wallet-consensus.privatenet3.json:/neo-cli/wallet.json:ro
- ./neon3-config/rpcserver.config-consensus.json:/neo-cli/Plugins/RpcServer/RpcServer.json:ro
- ./neon3-config/dbft.config-consensus.json:/neo-cli/Plugins/DBFTPlugin/DBFTPlugin.json:ro
- ./neon3-config/applicationlogs.config-consensus.json:/neo-cli/Plugins/ApplicationLogs/ApplicationLogs.json:ro
- ./neon3-config/tokentracker.config-consensus.json:/neo-cli/Plugins/TokensTracker/TokensTracker.json:ro
init: true
entrypoint: [
"sh", "-c",
"screen -dmS neo-node dotnet neo-cli.dll && sleep 15 && tail -f ./Logs/ConsensusService/*"
]
neon3-funding:
container_name: bridge-devnet-neon3-funding
build:
dockerfile_inline: |
FROM eclipse-temurin:8-jdk-jammy
RUN apt-get update && apt-get install -y curl jq gradle
depends_on:
- neon3-node
volumes:
- ./tools:/tools
- ./bridge-neo-contracts:/bridge-neo-contracts
- ./neon3-config:/neon3-config:ro
environment:
- N3_JSON_RPC=http://neon3-node:40332
- GAS_AMOUNT=10000000000
- GAS_TOKEN_HASH=0xd2a4cff31913016155e38e474a2c06d08be276cf
- NEO_AMOUNT=10
- NEO_TOKEN_HASH=0xef4073a0f2b305a38ec4050e4d3d28bc40ea63f5
- FUNDED_ADDRESS=NYCtX5TPmCyLJSNATAufWfTgMoCit24QQr
- STORAGE_PRICE=1000
- EXEC_FEE_FACTOR=1
- FEE_PER_BYTE=0
- WALLET_FILEPATH_DEPLOYER=/neon3-config/wallet-consensus.privatenet3.json
- WALLET_PASSWORD_DEPLOYER=neo
working_dir: /tools/neon3-funding
command: [
"sh", "-c",
"echo \"Funding accounts and setting policy parameters...\" \
&& chmod u+x neon3-funding-and-network-setup.sh \
&& ./neon3-funding-and-network-setup.sh $$FUNDED_ADDRESS $$GAS_AMOUNT 10 \
&& echo \"Funding complete.\"
"
]
restart: "no"
neon3-contracts:
container_name: bridge-devnet-deploy-n3-message-bridge
build:
context: ./
dockerfile_inline: |
FROM eclipse-temurin:8-jdk-jammy
RUN apt-get update \
&& apt-get install -y netcat coreutils curl expect vim-common jq \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /n3-contracts
depends_on:
neon3-node:
condition: service_started
neon3-funding:
condition: service_completed_successfully
volumes:
- ./bridge-neo-contracts:/n3-contracts:rw
- ./tools:/tools
- ./tools/neon3-funding/neon3-wallets:/n3-wallets:ro
working_dir: /n3-contracts
environment:
- N3_JSON_RPC=http://neon3-node:40332
- WALLET_FILEPATH_DEPLOYER=/n3-wallets/deployer.json
- WALLET_PASSWORD_DEPLOYER=
- WALLET_FILEPATH_OWNER=/n3-wallets/owner.json
- WALLET_PASSWORD_OWNER=
- WALLET_FILEPATH_GOVERNOR=/n3-wallets/governor.json
- WALLET_PASSWORD_GOVERNOR=
- MANAGEMENT_CONTRACT_NAME=BridgeManagement
- MANAGEMENT_VALIDATOR_THRESHOLD=2
- MANAGEMENT_NUMBER_OF_VALIDATORS=2
- ROLE_OWNER_ADDRESS=NRozNKnv4aSMEUL3KyD4UyeHoiPdLpi4y6
- ROLE_RELAYER_ADDRESS=NV9K66eGN9qjJGCFMo5ftJDQeWkG4AP6E1
- ROLE_GOVERNOR_ADDRESS=NNTRbhrT1qbJ2qbY1qFnwumjs6f1B3Ev54
- ROLE_SECURITY_GUARD_ADDRESS=NNTRbhrT1qbJ2qbY1qFnwumjs6f1B3Ev54
- ROLE_GOVERNOR_ADDRESS=NNTRbhrT1qbJ2qbY1qFnwumjs6f1B3Ev54
- ROLE_SECURITY_GUARD_ADDRESS=NNTRbhrT1qbJ2qbY1qFnwumjs6f1B3Ev54
- BRIDGE_CONTRACT_NAME=Bridge
- LINKED_CHAIN_ID=2312051126
entrypoint: [
"bash", "-c",
"source /tools/utils/extract-pubkeys.sh /n3-wallets \
&& expect -n /tools/deploy/deploy-n3-message-bridge-contracts.expect \
&& bash /tools/register/neo-set-native-bridge.sh \
&& bash /tools/register/neo-register-neo-token.sh \
&& bash /tools/unpause/neo-unpause-all.sh"
]
# RabbitMQ Management UI: http://localhost:15672 (login: admin/admin123)
# RabbitMQ AMQP: amqp://admin:admin123@localhost:5672
rabbitmq:
image: rabbitmq:3.12-management
container_name: bridge-devnet-rabbitmq
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin123
RABBITMQ_DEFAULT_VHOST: /
ports:
- '5672:5672'
- '15672:15672'
volumes:
- rabbitmq_data:/var/lib/rabbitmq
init: true
# healthcheck:
# test: ["CMD", "rabbitmq-diagnostics", "ping"]
# interval: 30s
# timeout: 10s
# retries: 5
# start_period: 30s
prometheus:
image: prom/prometheus
container_name: bridge-devnet-prometheus
restart: unless-stopped
ports:
- '9090:9090'
volumes:
- ./monitoring/prometheus/prometheus.yaml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
container_name: bridge-devnet-grafana
restart: unless-stopped
# if you are running as root, then set it to 0
# else find the right id with the id -u command
user: '0'
ports:
- '3000:3000'
volumes:
- grafana_data:/var/lib/grafana
# Bind the provisioning directory (keep track of data sources and dashboards config)
- ./monitoring/grafana/provisioning:/etc/grafana/provisioning
volumes:
rabbitmq_data:
grafana_data: