risedev/task/
pulsar_service.rs1use super::docker_service::{DockerService, DockerServiceConfig};
16use crate::PulsarConfig;
17
18impl DockerServiceConfig for PulsarConfig {
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 args(&self) -> Vec<String> {
32 vec!["bin/pulsar".to_owned(), "standalone".to_owned()]
33 }
34
35 fn ports(&self) -> Vec<(String, String)> {
36 vec![
37 (self.broker_port.to_string(), "6650".to_owned()),
38 (self.http_port.to_string(), "8080".to_owned()),
39 ]
40 }
41
42 fn data_path(&self) -> Option<String> {
43 self.persist_data.then(|| "/pulsar/data".to_owned())
44 }
45}
46
47pub type PulsarService = DockerService<PulsarConfig>;