risedev/task/
mqtt_service.rs1use super::docker_service::{DockerService, DockerServiceConfig};
16use crate::MqttConfig;
17
18impl DockerServiceConfig for MqttConfig {
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 "sh".to_owned(),
34 "-c".to_owned(),
35 "printf 'allow_anonymous true\nlistener 1883 0.0.0.0\n' > /mosquitto/config/mosquitto.conf && /docker-entrypoint.sh /usr/sbin/mosquitto -c /mosquitto/config/mosquitto.conf".to_owned(),
36 ]
37 }
38
39 fn ports(&self) -> Vec<(String, String)> {
40 vec![(self.port.to_string(), "1883".to_owned())]
41 }
42
43 fn data_path(&self) -> Option<String> {
44 self.persist_data.then(|| "/mosquitto/data".to_owned())
45 }
46}
47
48pub type MqttService = DockerService<MqttConfig>;