-
Notifications
You must be signed in to change notification settings - Fork 5
/
docker-compose.yml
237 lines (224 loc) · 5.55 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
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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
services:
db:
image: ghcr.io/synthetixio/data/postgres:${VERSION}
build:
context: ./postgres
dockerfile: Dockerfile
restart: always
networks:
- data
environment:
POSTGRES_PASSWORD: $PG_PASSWORD
PGDATA: /var/lib/postgresql/data
POSTGRES_SHARED_BUFFERS: "4GB"
POSTGRES_WORK_MEM: "100MB"
POSTGRES_MAINTENANCE_WORK_MEM: "1GB"
POSTGRES_EFFECTIVE_CACHE_SIZE: "8GB"
volumes:
- ./postgres/initdb:/docker-entrypoint-initdb.d
- ./postgres-data:/var/lib/postgresql/data
- ./parquet-data:/parquet-data
ports:
- "${DB_PORT}:5432"
deploy:
resources:
limits:
cpus: "4.0"
memory: 8192M
shm_size: 4gb
tmpfs:
- /dev/shm:size=4g
indexer-v2:
build:
context: ./indexers-v2
dockerfile: Dockerfile
networks:
- data
restart: always
env_file:
- .env
environment:
NETWORK_NAME: base_mainnet
CONFIG_NAME: synthetix-v3
volumes:
- ./parquet-data:/parquet-data
eth-mainnet-processor:
image: ghcr.io/synthetixio/data/indexer:${VERSION}-mainnet
build:
context: ./indexers/eth-mainnet
networks:
- data
depends_on:
- db
restart: always
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: eth_mainnet
DB_PASS: $PG_PASSWORD
GQL_PORT: 4350
RPC_ENDPOINT: https://ethereum-rpc.publicnode.com
base-mainnet-processor:
image: ghcr.io/synthetixio/data/indexer:${VERSION}-base-mainnet
build:
context: ./indexers/base-mainnet
networks:
- data
depends_on:
- db
restart: always
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: base_mainnet
DB_PASS: $PG_PASSWORD
GQL_PORT: 4350
RPC_ENDPOINT: https://mainnet.base.org
base-sepolia-processor:
image: ghcr.io/synthetixio/data/indexer:${VERSION}-base-sepolia
build:
context: ./indexers/base-sepolia
networks:
- data
depends_on:
- db
restart: always
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: base_sepolia
DB_PASS: $PG_PASSWORD
GQL_PORT: 4350
RPC_ENDPOINT: https://sepolia.base.org
arbitrum-sepolia-processor:
image: ghcr.io/synthetixio/data/indexer:${VERSION}-arbitrum-sepolia
build:
context: ./indexers/arbitrum-sepolia
networks:
- data
depends_on:
- db
restart: always
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: arbitrum_sepolia
DB_PASS: $PG_PASSWORD
GQL_PORT: 4350
RPC_ENDPOINT: https://sepolia-rollup.arbitrum.io/rpc
arbitrum-mainnet-processor:
image: ghcr.io/synthetixio/data/indexer:${VERSION}-arbitrum-mainnet
build:
context: ./indexers/arbitrum-mainnet
networks:
- data
depends_on:
- db
restart: always
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: arbitrum_mainnet
DB_PASS: $PG_PASSWORD
GQL_PORT: 4350
RPC_ENDPOINT: wss://arbitrum-one-rpc.publicnode.com
optimism-mainnet-processor:
image: ghcr.io/synthetixio/data/indexer:${VERSION}-optimism-mainnet
build:
context: ./indexers/optimism-mainnet
networks:
- data
depends_on:
- db
restart: always
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: optimism_mainnet
DB_PASS: $PG_PASSWORD
GQL_PORT: 4350
RPC_ENDPOINT: https://mainnet.optimism.io
snax-testnet-processor:
image: ghcr.io/synthetixio/data/indexer:${VERSION}-snax-testnet
build:
context: ./indexers/snax-testnet
networks:
- data
depends_on:
- db
restart: always
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: snax_testnet
DB_PASS: $PG_PASSWORD
GQL_PORT: 4350
RPC_ENDPOINT: https://testnet.snaxchain.io/
API_KEY: $CONDUIT_API_KEY
snax-mainnet-processor:
image: ghcr.io/synthetixio/data/indexer:${VERSION}-snax-mainnet
build:
context: ./indexers/snax-mainnet
networks:
- data
depends_on:
- db
restart: always
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: snax_mainnet
DB_PASS: $PG_PASSWORD
GQL_PORT: 4350
RPC_ENDPOINT: https://mainnet.snaxchain.io/
API_KEY: $CONDUIT_API_KEY
transformer:
image: ghcr.io/synthetixio/data/transformer:${VERSION}
build:
context: ./transformers
depends_on:
- db
env_file:
- .env
environment:
PG_PASSWORD: $PG_PASSWORD
volumes:
- ./parquet-data:/parquet-data
- ./transformers/synthetix:/app/synthetix
networks:
- data
extractors:
image: ghcr.io/synthetixio/data/extractors:${VERSION}
build:
context: ./extractors
env_file:
- .env
volumes:
- ./extractors:/app
- ./parquet-data:/parquet-data
scheduler:
build:
context: .
dockerfile: ./scheduler/Dockerfile
restart: always
networks:
- data
depends_on:
- db
env_file:
- .env
environment:
AIRFLOW__CORE__EXECUTOR: LocalExecutor
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://postgres:$PG_PASSWORD@db:5432/postgres
AIRFLOW__API__AUTH_BACKENDS: airflow.api.auth.backend.basic_auth
volumes:
- ./scheduler/dags:/opt/airflow/dags
- ./scheduler/logs:/opt/airflow/logs
- ./scheduler/plugins:/opt/airflow/plugins
- /var/run/docker.sock:/var/run/docker.sock
- ./parquet-data:/parquet-data
ports:
- "${AIRFLOW_PORT}:8080"
networks:
data:
driver: bridge