risedev/task/
nats_service.rs1use super::docker_service::{DockerService, DockerServiceConfig};
16use crate::NatsConfig;
17
18impl DockerServiceConfig for NatsConfig {
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![
33 "-js".to_owned(),
34 "--http_port".to_owned(),
35 "8222".to_owned(),
36 "--store_dir".to_owned(),
37 "/data".to_owned(),
38 ]
39 }
40
41 fn ports(&self) -> Vec<(String, String)> {
42 vec![
43 (self.port.to_string(), "4222".to_owned()),
44 (self.monitor_port.to_string(), "8222".to_owned()),
45 ]
46 }
47
48 fn data_path(&self) -> Option<String> {
49 self.persist_data.then(|| "/data".to_owned())
50 }
51}
52
53pub type NatsService = DockerService<NatsConfig>;