diff options
| -rw-r--r-- | infra/stack.service | 1 | ||||
| -rw-r--r-- | src/project.rs | 26 |
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(()) } |
