fix podman pods

This commit is contained in:
Dmitriy Kholkin 2023-11-22 06:16:07 +03:00
parent 05dc9d936c
commit 578291cce5
5 changed files with 14 additions and 12 deletions

View File

@ -93,7 +93,7 @@ in {
systemd.services."podman-create-${pod-name}" = let systemd.services."podman-create-${pod-name}" = let
portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports; portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports;
start = pkgs.writeShellScript "create-pod" '' start = pkgs.writeShellScript "create-pod-${pod-name}" ''
podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} --dns ${pod-dns} podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} --dns ${pod-dns}
''; '';
stop = "podman pod rm -i -f ${pod-name}"; stop = "podman pod rm -i -f ${pod-name}";

View File

@ -3,7 +3,7 @@ let
backend = config.virtualisation.oci-containers.backend; backend = config.virtualisation.oci-containers.backend;
nas-path = "/media/nas/containers"; nas-path = "/media/nas/containers";
pod-name = "homepage-pod"; pod-name = "homepage-pod";
pod-dns = "192.168.0.5"; pod-dns = "127.0.0.1";
open-ports = [ open-ports = [
"127.0.0.1:3000:3000/tcp" "127.0.0.1:3000:3000/tcp"
# "127.0.0.1:2375:2375/tcp" # "127.0.0.1:2375:2375/tcp"
@ -53,7 +53,7 @@ in {
systemd.services."podman-create-${pod-name}" = let systemd.services."podman-create-${pod-name}" = let
portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports; portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports;
start = pkgs.writeShellScript "create-pod" '' start = pkgs.writeShellScript "create-pod-${pod-name}" ''
podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} --dns ${pod-dns} podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} --dns ${pod-dns}
''; '';
stop = "podman pod rm -i -f ${pod-name}"; stop = "podman pod rm -i -f ${pod-name}";

View File

@ -40,7 +40,7 @@ in {
systemd.services."podman-create-${pod-name}" = let systemd.services."podman-create-${pod-name}" = let
portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports; portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports;
start = pkgs.writeShellScript "create-pod" '' start = pkgs.writeShellScript "create-pod-${pod-name}" ''
podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping}
''; '';
stop = "podman pod rm -i -f ${pod-name}"; stop = "podman pod rm -i -f ${pod-name}";

View File

@ -6,7 +6,7 @@ let
# caddy # caddy
"127.0.0.1:8180:8180" "127.0.0.1:8180:8180"
]; ];
pod-dns = "192.168.0.1"; pod-dns = "127.0.0.1";
in { in {
imports = [ imports = [
./caddy.nix ./caddy.nix
@ -23,12 +23,11 @@ in {
systemd.services."podman-create-${pod-name}" = let systemd.services."podman-create-${pod-name}" = let
portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports; portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports;
start = pkgs.writeShellScript "create-pod" '' start = pkgs.writeShellScript "create-pod-${pod-name}" ''
podman pod exists ${pod-name} && podman pod rm -i ${pod-name} \ podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} --dns ${pod-dns}
|| podman pod create -n ${pod-name} ${portsMapping} --dns ${pod-dns}
exit 0
''; '';
in { stop = "podman pod rm -i -f ${pod-name}";
in rec {
path = [ pkgs.coreutils config.virtualisation.podman.package ]; path = [ pkgs.coreutils config.virtualisation.podman.package ];
before = [ before = [
"${backend}-media-caddy.service" "${backend}-media-caddy.service"
@ -43,10 +42,13 @@ in {
"${backend}-recyclarr.service" "${backend}-recyclarr.service"
"${backend}-sonarr.service" "${backend}-sonarr.service"
]; ];
requiredBy = before;
partOf = before;
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = "yes"; RemainAfterExit = "yes";
ExecStart = start; ExecStart = start;
ExecStop = stop;
}; };
}; };
} }

View File

@ -2,7 +2,7 @@
let let
backend = config.virtualisation.oci-containers.backend; backend = config.virtualisation.oci-containers.backend;
nas-path = "/media/nas/seafile"; nas-path = "/media/nas/seafile";
pod-name = "seafile"; pod-name = "seafile-pod";
open-ports = [ "127.0.0.1:8088:80" ]; open-ports = [ "127.0.0.1:8088:80" ];
seafile-ver = "10.0.1"; seafile-ver = "10.0.1";
mariadb-ver = "10.11.4"; mariadb-ver = "10.11.4";
@ -135,7 +135,7 @@ in {
systemd.services."podman-create-${pod-name}" = let systemd.services."podman-create-${pod-name}" = let
portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports; portsMapping = lib.concatMapStrings (port: " -p " + port) open-ports;
start = pkgs.writeShellScript "create-pod" '' start = pkgs.writeShellScript "create-pod-${pod-name}" ''
podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping} podman pod exists ${pod-name} || podman pod create -n ${pod-name} ${portsMapping}
exit 0 exit 0
''; '';