about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2020-02-16 21:24:05 +0100
committerGitHub <noreply@github.com>2020-02-16 21:24:05 +0100
commit06d18a5737e23145498c36111526b1378f110b54 (patch)
tree226f9bad6e95abe4d07b94231f2ca0d8acba8776 /nixos
parent7695e9e1fa582751b2af2f0e40703ec2701c5366 (diff)
parentc83cc9c364649560a7a0dafc610c09cf24e39408 (diff)
downloadnixlib-06d18a5737e23145498c36111526b1378f110b54.tar
nixlib-06d18a5737e23145498c36111526b1378f110b54.tar.gz
nixlib-06d18a5737e23145498c36111526b1378f110b54.tar.bz2
nixlib-06d18a5737e23145498c36111526b1378f110b54.tar.lz
nixlib-06d18a5737e23145498c36111526b1378f110b54.tar.xz
nixlib-06d18a5737e23145498c36111526b1378f110b54.tar.zst
nixlib-06d18a5737e23145498c36111526b1378f110b54.zip
Merge pull request #80204 from CRTified/fix/issue-76620
docker-containers: Move ExecStartPre/ExecStopPost to preStart/postStop
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/virtualisation/docker-containers.nix18
1 files changed, 11 insertions, 7 deletions
diff --git a/nixos/modules/virtualisation/docker-containers.nix b/nixos/modules/virtualisation/docker-containers.nix
index cae39a56f52f..5ab990a3d7cc 100644
--- a/nixos/modules/virtualisation/docker-containers.nix
+++ b/nixos/modules/virtualisation/docker-containers.nix
@@ -210,7 +210,16 @@ let
     wantedBy = [] ++ optional (container.autoStart) "multi-user.target";
     after = [ "docker.service" "docker.socket" ] ++ mkAfter;
     requires = after;
-
+    path = [ pkgs.docker ];
+
+    preStart = ''
+      docker rm -f ${name} || true
+      ${optionalString (container.imageFile != null) ''
+        docker load -i ${container.imageFile}
+        ''}
+      '';
+    postStop = "docker rm -f ${name} || true";
+        
     serviceConfig = {
       ExecStart = concatStringsSep " \\\n  " ([
         "${pkgs.docker}/bin/docker run"
@@ -229,12 +238,7 @@ let
         ++ map escapeShellArg container.cmd
       );
 
-      ExecStartPre =
-        ["-${pkgs.docker}/bin/docker rm -f ${name}"] ++
-        (optional (container.imageFile != null) "${pkgs.docker}/bin/docker load -i ${container.imageFile}");
-
-      ExecStop = ''${pkgs.bash}/bin/sh -c "[ $SERVICE_RESULT = success ] || ${pkgs.docker}/bin/docker stop ${name}"'';
-      ExecStopPost = "-${pkgs.docker}/bin/docker rm -f ${name}";
+      ExecStop = ''${pkgs.bash}/bin/sh -c "[ $SERVICE_RESULT = success ] || docker stop ${name}"'';
 
       ### There is no generalized way of supporting `reload` for docker
       ### containers. Some containers may respond well to SIGHUP sent to their