aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--infra/stack.service1
-rw-r--r--src/project.rs26
2 files changed, 11 insertions, 16 deletions
diff --git a/infra/stack.service b/infra/stack.service
index 64012a9..702da97 100644
--- a/infra/stack.service
+++ b/infra/stack.service
@@ -21,6 +21,7 @@ After=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
+KillMode=process
WorkingDirectory=%h/stack
ExecStart=%h/stack/bin/stack up --production
ExecStop=%h/stack/bin/stack down
diff --git a/src/project.rs b/src/project.rs
index f952b26..f643704 100644
--- a/src/project.rs
+++ b/src/project.rs
@@ -430,16 +430,9 @@ impl Project {
]
.to_vec()
} else {
- [
- "0.0.0.0:80:80",
- "0.0.0.0:443:443",
- "0.0.0.0:443:443/udp",
- "[::]:80:80",
- "[::]:443:443",
- "[::]:443:443/udp",
- ]
- .map(str::to_owned)
- .to_vec()
+ ["[::]:80:80", "[::]:443:443", "[::]:443:443/udp"]
+ .map(str::to_owned)
+ .to_vec()
};
for port in ports {
command.args(["--publish", &port]);
@@ -517,12 +510,13 @@ impl Project {
&Self::container_name(settings, name),
]))?;
}
- process::capture(self.command("podman")?.args([
- "network",
- "rm",
- "--ignore",
- &format!("{}-net", settings.project),
- ]))?;
+ let network = format!("{}-net", settings.project);
+ if process::available(
+ self.command("podman")?
+ .args(["network", "exists", &network]),
+ ) {
+ process::capture(self.command("podman")?.args(["network", "rm", &network]))?;
+ }
Ok(())
}