risedev/task/
clickhouse_service.rs1use super::docker_service::{DockerService, DockerServiceConfig};
16use crate::ClickHouseConfig;
17
18impl DockerServiceConfig for ClickHouseConfig {
19 fn id(&self) -> String {
20 self.id.clone()
21 }
22
23 fn is_user_managed(&self) -> bool {
24 self.user_managed
25 }
26
27 fn image(&self) -> String {
28 self.image.clone()
29 }
30
31 fn envs(&self) -> Vec<(String, String)> {
32 vec![
33 ("CLICKHOUSE_USER".to_owned(), self.user.clone()),
34 ("CLICKHOUSE_PASSWORD".to_owned(), self.password.clone()),
35 ("CLICKHOUSE_DB".to_owned(), self.database.clone()),
36 ]
37 }
38
39 fn ports(&self) -> Vec<(String, String)> {
40 vec![
41 (self.http_port.to_string(), "8123".to_owned()),
42 (self.native_port.to_string(), "9000".to_owned()),
43 ]
44 }
45
46 fn data_path(&self) -> Option<String> {
47 self.persist_data.then(|| "/var/lib/clickhouse".to_owned())
48 }
49}
50
51pub type ClickHouseService = DockerService<ClickHouseConfig>;