Skip to content

Commit 8762ba8

Browse files
authored
fix: fix healthcheck scripts for all components in docker compose file (#10126)
1 parent 6b9972c commit 8762ba8

File tree

2 files changed

+56
-40
lines changed

2 files changed

+56
-40
lines changed

docker/docker-compose.yml

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,8 @@ services:
3333
container_name: compactor-0
3434
healthcheck:
3535
test:
36-
- CMD
37-
- printf
38-
- ""
39-
- /dev/tcp/127.0.0.1/6660
36+
- CMD-SHELL
37+
- bash -c 'printf \"GET / HTTP/1.1\n\n\" > /dev/tcp/127.0.0.1/6660; exit $?;'
4038
interval: 1s
4139
timeout: 5s
4240
retries: 5
@@ -74,10 +72,8 @@ services:
7472
container_name: compute-node-0
7573
healthcheck:
7674
test:
77-
- CMD
78-
- printf
79-
- ""
80-
- /dev/tcp/127.0.0.1/5688
75+
- CMD-SHELL
76+
- bash -c 'printf \"GET / HTTP/1.1\n\n\" > /dev/tcp/127.0.0.1/5688; exit $?;'
8177
interval: 1s
8278
timeout: 5s
8379
retries: 5
@@ -120,9 +116,10 @@ services:
120116
healthcheck:
121117
test:
122118
- CMD
123-
- printf
124-
- ""
125-
- /dev/tcp/127.0.0.1/2388
119+
- etcdctl
120+
- --endpoints=http://localhost:2388
121+
- endpoint
122+
- health
126123
interval: 1s
127124
timeout: 5s
128125
retries: 5
@@ -157,10 +154,8 @@ services:
157154
container_name: frontend-node-0
158155
healthcheck:
159156
test:
160-
- CMD
161-
- printf
162-
- ""
163-
- /dev/tcp/127.0.0.1/4566
157+
- CMD-SHELL
158+
- bash -c 'printf \"GET / HTTP/1.1\n\n\" > /dev/tcp/127.0.0.1/4566; exit $?;'
164159
interval: 1s
165160
timeout: 5s
166161
retries: 5
@@ -182,10 +177,8 @@ services:
182177
container_name: grafana-0
183178
healthcheck:
184179
test:
185-
- CMD
186-
- printf
187-
- ""
188-
- /dev/tcp/127.0.0.1/3001
180+
- CMD-SHELL
181+
- bash -c 'printf \"GET / HTTP/1.1\n\n\" > /dev/tcp/127.0.0.1/3001; exit $?;'
189182
interval: 1s
190183
timeout: 5s
191184
retries: 5
@@ -231,10 +224,8 @@ services:
231224
container_name: meta-node-0
232225
healthcheck:
233226
test:
234-
- CMD
235-
- printf
236-
- ""
237-
- /dev/tcp/127.0.0.1/5690
227+
- CMD-SHELL
228+
- bash -c 'printf \"GET / HTTP/1.1\n\n\" > /dev/tcp/127.0.0.1/5690; exit $?;'
238229
interval: 1s
239230
timeout: 5s
240231
retries: 5
@@ -276,10 +267,8 @@ services:
276267
container_name: minio-0
277268
healthcheck:
278269
test:
279-
- CMD
280-
- printf
281-
- ""
282-
- /dev/tcp/127.0.0.1/9301
270+
- CMD-SHELL
271+
- bash -c 'printf \"GET / HTTP/1.1\n\n\" > /dev/tcp/127.0.0.1/9301; exit $?;'
283272
interval: 1s
284273
timeout: 5s
285274
retries: 5
@@ -304,10 +293,8 @@ services:
304293
container_name: prometheus-0
305294
healthcheck:
306295
test:
307-
- CMD
308-
- printf
309-
- ""
310-
- /dev/tcp/127.0.0.1/9500
296+
- CMD-SHELL
297+
- sh -c 'printf "GET /-/healthy HTTP/1.0\n\n" | nc localhost 9500; exit $?;'
311298
interval: 1s
312299
timeout: 5s
313300
retries: 5
@@ -353,10 +340,8 @@ services:
353340
container_name: message_queue
354341
healthcheck:
355342
test:
356-
- CMD
357-
- printf
358-
- ""
359-
- /dev/tcp/127.0.0.1/9092
343+
- CMD-SHELL
344+
- bash -c 'printf \"GET / HTTP/1.1\n\n\" > /dev/tcp/127.0.0.1/9092; exit $?;'
360345
interval: 1s
361346
timeout: 5s
362347
retries: 5

src/risedevtool/src/compose.rs

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,43 @@ fn get_cmd_envs(cmd: &Command) -> Result<BTreeMap<String, String>> {
138138
}
139139

140140
fn health_check_port(port: u16) -> HealthCheck {
141+
HealthCheck {
142+
test: vec![
143+
"CMD-SHELL".into(),
144+
format!(
145+
"bash -c 'printf \"GET / HTTP/1.1\\n\\n\" > /dev/tcp/127.0.0.1/{}; exit $?;'",
146+
port
147+
),
148+
],
149+
interval: "1s".to_string(),
150+
timeout: "5s".to_string(),
151+
retries: 5,
152+
}
153+
}
154+
155+
fn health_check_port_etcd(port: u16) -> HealthCheck {
141156
HealthCheck {
142157
test: vec![
143158
"CMD".into(),
144-
"printf".into(),
145-
"".into(),
146-
format!("/dev/tcp/127.0.0.1/{}", port),
159+
"etcdctl".into(),
160+
format!("--endpoints=http://localhost:{port}"),
161+
"endpoint".into(),
162+
"health".into(),
163+
],
164+
interval: "1s".to_string(),
165+
timeout: "5s".to_string(),
166+
retries: 5,
167+
}
168+
}
169+
170+
fn health_check_port_prometheus(port: u16) -> HealthCheck {
171+
HealthCheck {
172+
test: vec![
173+
"CMD-SHELL".into(),
174+
format!(
175+
"sh -c 'printf \"GET /-/healthy HTTP/1.0\\n\\n\" | nc localhost {}; exit $?;'",
176+
port
177+
),
147178
],
148179
interval: "1s".to_string(),
149180
timeout: "5s".to_string(),
@@ -400,7 +431,7 @@ impl Compose for PrometheusConfig {
400431
expose: vec![self.port.to_string()],
401432
ports: vec![format!("{}:{}", self.port, self.port)],
402433
volumes: vec![format!("{}:/prometheus", self.id)],
403-
healthcheck: Some(health_check_port(self.port)),
434+
healthcheck: Some(health_check_port_prometheus(self.port)),
404435
..Default::default()
405436
};
406437

@@ -468,7 +499,7 @@ impl Compose for EtcdConfig {
468499
format!("{}:{}", self.peer_port, self.peer_port),
469500
],
470501
volumes: vec![format!("{}:/etcd-data", self.id)],
471-
healthcheck: Some(health_check_port(self.port)),
502+
healthcheck: Some(health_check_port_etcd(self.port)),
472503
..Default::default()
473504
};
474505

0 commit comments

Comments
 (0)