-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yaml
171 lines (158 loc) · 4.48 KB
/
docker-compose.yaml
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
version: "3.9"
x-catalog-config: &catalog-config
PEERDB_CATALOG_HOST: catalog
PEERDB_CATALOG_PORT: 5432
PEERDB_CATALOG_USER: postgres
PEERDB_CATALOG_PASSWORD: postgres
PEERDB_CATALOG_DATABASE: postgres
x-flow-worker-env: &flow-worker-env
TEMPORAL_HOST_PORT: temporal:7233
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-""}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-""}
AWS_REGION: ${AWS_REGION:-""}
# enables worker profiling using Go's pprof
ENABLE_PROFILING: "false"
# enables exporting of mirror metrics to Prometheus for visualization using Grafana
ENABLE_METRICS: "false"
# enables exporting of mirror metrics to Catalog in the PEERDB_STATS schema.
ENABLE_STATS: "true"
services:
catalog:
container_name: catalog
image: debezium/postgres:15-alpine
ports:
- 9901:5432
environment:
PGUSER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready", "-d", "postgres", "-U", "postgres"]
interval: 10s
timeout: 30s
retries: 5
start_period: 60s
temporal:
container_name: temporal
depends_on:
catalog:
condition: service_healthy
environment:
- DB=postgresql
- DB_PORT=5432
- POSTGRES_USER=postgres
- POSTGRES_PWD=postgres
- POSTGRES_SEEDS=catalog
- DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development-sql.yaml
image: temporalio/auto-setup:1.21.3
ports:
- 7233:7233
volumes:
- ./temporal-dynamicconfig:/etc/temporal/config/dynamicconfig
labels:
kompose.volume.type: configMap
temporal-admin-tools:
container_name: temporal-admin-tools
depends_on:
- temporal
environment:
- TEMPORAL_ADDRESS=temporal:7233
- TEMPORAL_CLI_ADDRESS=temporal:7233
image: temporalio/admin-tools:1.21.3
stdin_open: true
tty: true
healthcheck:
test: ["CMD", "tctl", "workflow", "list"]
interval: 1s
timeout: 5s
retries: 30
temporal-ui:
container_name: temporal-ui
depends_on:
- temporal
environment:
- TEMPORAL_ADDRESS=temporal:7233
- TEMPORAL_CORS_ORIGINS=http://localhost:3000
- TEMPORAL_CSRF_COOKIE_INSECURE=true
image: temporalio/ui:2.17.2
ports:
- 8085:8080
flow_api:
container_name: flow_api
image: ghcr.io/peerdb-io/flow-api:${PEERDB_VERSION:-latest}
ports:
- 8112:8112
environment:
<<: [*catalog-config]
TEMPORAL_HOST_PORT: temporal:7233
depends_on:
temporal-admin-tools:
condition: service_healthy
flow_snapshot_worker:
container_name: flow_snapshot_worker
image: ghcr.io/peerdb-io/flow-snapshot-worker:${PEERDB_VERSION:-latest}
environment:
TEMPORAL_HOST_PORT: temporal:7233
depends_on:
temporal-admin-tools:
condition: service_healthy
flow_worker1:
container_name: flow_worker1
image: ghcr.io/peerdb-io/flow-worker:${PEERDB_VERSION:-latest}
environment:
<<: [*catalog-config, *flow-worker-env]
PROFILING_SERVER: 0.0.0.0:6060
METRICS_SERVER: 0.0.0.0:6061
ports:
- 6060:6060
- 6061:6061
depends_on:
temporal-admin-tools:
condition: service_healthy
flow_worker2:
container_name: flow_worker2
image: ghcr.io/peerdb-io/flow-worker:${PEERDB_VERSION:-latest}
environment:
<<: [*catalog-config, *flow-worker-env]
PROFILING_SERVER: 0.0.0.0:6062
METRICS_SERVER: 0.0.0.0:6063
ports:
- 6062:6062
- 6063:6063
depends_on:
temporal-admin-tools:
condition: service_healthy
flow_worker3:
container_name: flow_worker3
image: ghcr.io/peerdb-io/flow-worker:${PEERDB_VERSION:-latest}
environment:
<<: [*catalog-config, *flow-worker-env]
PROFILING_SERVER: 0.0.0.0:6064
METRICS_SERVER: 0.0.0.0:6065
ports:
- 6064:6064
- 6065:6065
depends_on:
temporal-admin-tools:
condition: service_healthy
peerdb:
container_name: peerdb_server
image: ghcr.io/peerdb-io/peerdb-server:${PEERDB_VERSION:-latest}
environment:
<<: *catalog-config
PEERDB_LOG_DIR: /var/log/peerdb
PEERDB_PASSWORD: peerdb
PEERDB_FLOW_SERVER_ADDRESS: grpc://flow_api:8112
RUST_LOG: info
RUST_BACKTRACE: 1
ports:
- 9900:9900
depends_on:
catalog:
condition: service_healthy
volumes:
pgdata: