-
Notifications
You must be signed in to change notification settings - Fork 577
/
docker-compose.yml
337 lines (314 loc) · 8.47 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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
services:
db:
image: postgres:15-alpine
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
ports:
- 5432
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 5s
timeout: 5s
retries: 5
command: [ "postgres", "-c", "wal_level=logical", "-c", "max_replication_slots=30" ]
mysql:
image: mysql:8.0
command: --character-set-server=utf8 --collation-server=utf8_general_ci
ports:
- 3306
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_USER=mysqluser
- MYSQL_PASSWORD=mysqlpw
healthcheck:
test:
[
"CMD-SHELL",
"mysqladmin ping -h 127.0.0.1 -u root -p123456"
]
interval: 5s
timeout: 5s
retries: 5
message_queue:
image: "docker.vectorized.io/vectorized/redpanda:latest"
command:
- redpanda
- start
- "--smp"
- "1"
- "--reserve-memory"
- 0M
- "--memory"
- 4G
- "--overprovisioned"
- "--node-id"
- "0"
- "--check=false"
- "--kafka-addr"
- "PLAINTEXT://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092"
- "--advertise-kafka-addr"
- "PLAINTEXT://message_queue:29092,OUTSIDE://localhost:9092"
expose:
- "29092"
- "9092"
- "9644"
ports:
- "29092:29092"
- "9092:9092"
- "9644:9644"
# Don't use Redpanda's schema registry, use the separated service instead
# - "8081:8081"
environment: {}
container_name: message_queue
healthcheck:
test: curl -f localhost:9644/v1/status/ready
interval: 1s
timeout: 5s
retries: 5
source-test-env:
image: public.ecr.aws/w1p7b4n3/rw-build-env:v20240812
depends_on:
- mysql
- sqlserver-server
- db
- message_queue
- schemaregistry
- mongodb
- mongodb-setup
- mongo_data_generator
volumes:
- ..:/risingwave
sink-test-env:
image: public.ecr.aws/w1p7b4n3/rw-build-env:v20240812
depends_on:
- mysql
- db
- message_queue
- schemaregistry
- elasticsearch
- clickhouse-server
- redis-server
- pulsar-server
- mqtt-server
- cassandra-server
- doris-server
- starrocks-fe-server
- starrocks-be-server
- mongodb
- mongodb-setup
- sqlserver-server
volumes:
- ..:/risingwave
rw-build-env:
image: public.ecr.aws/w1p7b4n3/rw-build-env:v20240812
volumes:
- ..:/risingwave
ci-flamegraph-env:
image: public.ecr.aws/w1p7b4n3/rw-build-env:v20240812
# NOTE(kwannoel): This is used in order to permit
# syscalls for `nperf` (perf_event_open),
# so it can do CPU profiling.
# These options should NOT be used for other services.
privileged: true
userns_mode: host
volumes:
- ..:/risingwave
regress-test-env:
image: public.ecr.aws/w1p7b4n3/rw-build-env:v20240812
depends_on:
db:
condition: service_healthy
volumes:
- ..:/risingwave
release-env-x86:
# Build binaries on a earlier Linux distribution (therefore with earlier version GLIBC)
# `manylinux_2_28` is based on AlmaLinux 8 with GLIBC 2.28.
#
# GLIBC versions on some systems:
# - Amazon Linux 2023 (AL2023): 2.34
# - Ubuntu 20.04: 2.31
#
# Systems that we don't provide support for:
# - Ubuntu 18.04: 2.27 (Already EOL 2023-05-31)
# - Amazon Linux 2: 2.26 (Originally EOL 2023-06-30, superseded by AL2023)
image: quay.io/pypa/manylinux_2_28_x86_64
working_dir: /mnt
volumes:
- ..:/mnt
release-env-arm:
image: quay.io/pypa/manylinux_2_28_aarch64
working_dir: /mnt
volumes:
- ..:/mnt
elasticsearch:
container_name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.11.0
environment:
- xpack.security.enabled=true
- discovery.type=single-node
- ELASTIC_PASSWORD=risingwave
ports:
- 9200:9200
clickhouse-server:
image: clickhouse/clickhouse-server:23.3.8.21-alpine
container_name: clickhouse-server-1
hostname: clickhouse-server-1
ports:
- "8123:8123"
- "9000:9000"
- "9004:9004"
expose:
- 9009
redis-server:
container_name: redis-server
image: 'redis:latest'
expose:
- 6379
ports:
- 6378:6379
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 30s
retries: 50
cassandra-server:
container_name: cassandra-server
image: cassandra:4.0
ports:
- 9042:9042
environment:
- CASSANDRA_CLUSTER_NAME=cloudinfra
doris-server:
container_name: doris-server
image: apache/doris:doris-all-in-one-2.1.0
ports:
- 8030:8030
- 8040:8040
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9030"]
interval: 5s
timeout: 5s
retries: 30
sqlserver-server:
container_name: sqlserver-server
image: mcr.microsoft.com/mssql/server:2022-latest
hostname: sqlserver-server
ports:
- 1433:1433
environment:
ACCEPT_EULA: 'Y'
SA_PASSWORD: 'SomeTestOnly@SA'
MSSQL_AGENT_ENABLED: "true"
starrocks-fe-server:
container_name: starrocks-fe-server
image: starrocks/fe-ubuntu:3.1.7
hostname: starrocks-fe-server
command:
/opt/starrocks/fe/bin/start_fe.sh
ports:
- 28030:8030
- 29020:9020
- 29030:9030
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9030"]
interval: 5s
timeout: 5s
retries: 30
starrocks-be-server:
image: starrocks/be-ubuntu:3.1.7
command:
- /bin/bash
- -c
- |
sleep 15s; mysql --connect-timeout 2 -h starrocks-fe-server -P9030 -uroot -e "alter system add backend \"starrocks-be-server:9050\";"
/opt/starrocks/be/bin/start_be.sh
ports:
- 28040:8040
- 29050:9050
hostname: starrocks-be-server
container_name: starrocks-be-server
depends_on:
- starrocks-fe-server
# # Temporary workaround for json schema registry test since redpanda only supports
# # protobuf/avro schema registry. Should be removed after the support.
# # Related tracking issue:
# # https://github.com/redpanda-data/redpanda/issues/1878
schemaregistry:
container_name: schemaregistry
hostname: schemaregistry
image: confluentinc/cp-schema-registry:latest
depends_on:
- message_queue
ports:
- "8082:8082"
environment:
SCHEMA_REGISTRY_HOST_NAME: schemaregistry
SCHEMA_REGISTRY_LISTENERS: http://schemaregistry:8082
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: message_queue:29092
SCHEMA_REGISTRY_DEBUG: 'true'
pulsar-server:
container_name: pulsar-server
image: apachepulsar/pulsar:latest
command: bin/pulsar standalone
ports:
- "6650:6650"
- "6651:8080"
expose:
- "8080"
- "6650"
healthcheck:
test: [ "CMD-SHELL", "bin/pulsar-admin brokers healthcheck"]
interval: 5s
timeout: 5s
retries: 5
mongodb:
image: mongo:4.4
ports:
- "27017"
command: --replSet rs0 --oplogSize 128
restart: always
healthcheck:
test: "echo 'db.runCommand({ping: 1})' | mongo"
interval: 5s
timeout: 10s
retries: 3
mongodb-setup:
image: mongo:4.4
container_name: mongodb-setup
depends_on:
- mongodb
entrypoint:
[
"bash",
"-c",
"sleep 10 && mongo --host mongodb:27017 /config-replica.js && sleep 10"
]
restart: "no"
volumes:
- ./mongodb/config-replica.js:/config-replica.js
mongo_data_generator:
build:
context: .
dockerfile: ./mongodb/Dockerfile.generator
container_name: mongo_data_generator
depends_on:
- mongodb
environment:
MONGO_HOST: mongodb
MONGO_PORT: 27017
MONGO_DB_NAME: random_data
mqtt-server:
image: eclipse-mosquitto
command:
- sh
- -c
- echo "running command"; printf 'allow_anonymous true\nlistener 1883 0.0.0.0' > /mosquitto/config/mosquitto.conf; echo "starting service..."; cat /mosquitto/config/mosquitto.conf;/docker-entrypoint.sh;/usr/sbin/mosquitto -c /mosquitto/config/mosquitto.conf
ports:
- 1883:1883
healthcheck:
test: ["CMD-SHELL", "(mosquitto_sub -h localhost -p 1883 -t 'topic' -E -i probe 2>&1 | grep Error) && exit 1 || exit 0"]
interval: 10s
timeout: 10s
retries: 6