diff --git a/modules/util/container-services.nix b/modules/util/container-services.nix index 0f2a64d..a5b80b9 100644 --- a/modules/util/container-services.nix +++ b/modules/util/container-services.nix @@ -160,14 +160,17 @@ in (lib.map (name: volumeServiceRef pod.name name) (namedVolumes service)) ++ (networkServiceRef pod); in - lib.nameValuePair (serviceName pod service) { - serviceConfig = { - Restart = lib.mkOverride 500 "always"; + { + name = (serviceName pod service); + value = { + serviceConfig = { + Restart = lib.mkOverride 500 "always"; + }; + after = dependencies; + requires = dependencies; + partOf = [ (podRef pod) ]; + wantedBy = [ (podRef pod) ]; }; - after = dependencies; - requires = dependencies; - partOf = [ (podRef pod) ]; - wantedBy = [ (podRef pod) ]; } ) pod.services) @@ -189,36 +192,39 @@ in pod.services))) ]) { } - cfg; + (lib.attrValues cfg); virtualisation.oci-containers.containers = lib.foldl (containers: pod: containers // ( - lib.mapAttrs' (_: service: - lib.nameValuePair (serviceName pod service) { - image = service.image; - volumes = service.volumes; - log-driver = "journal"; - ports = service.ports; - environment = service.environment; - environmentFiles = service.environmentFiles; - cmd = service.cmd; - extraOptions = [ - "--network-alias=${service.alias or service.name}" - "--network=${networkName pod}" - ] ++ (if (service.healthCheck != null) then [ - "--health-cmd=${ + lib.mapAttrs' + (_: service: { + name = serviceName pod service; + value = { + image = service.image; + volumes = service.volumes; + log-driver = "journal"; + ports = service.ports; + environment = service.environment; + environmentFiles = service.environmentFiles; + cmd = service.cmd; + extraOptions = [ + "--network-alias=${service.alias or service.name}" + "--network=${networkName pod}" + ] ++ (if (service.healthCheck != null) then [ + "--health-cmd=${ if (builtins.isList service.healthCheck.test) then builtins.toJSON service.healthCheck.test else service.healthCheck.test }" - "--health-interval=${service.healthCheck.interval}" - "--health-startup-interval=${service.healthCheck.startupInterval}" - "--health-start-period=${service.healthCheck.startPeriod}" - ] else [ ]); - } - ) + "--health-interval=${service.healthCheck.interval}" + "--health-startup-interval=${service.healthCheck.startupInterval}" + "--health-start-period=${service.healthCheck.startPeriod}" + ] else [ ]); + }; + }) + pod.services )) { } - cfg; + (lib.attrValues cfg); }; }