docker: Allow package selection in module

+13 -4
+13 -4
nixos/modules/virtualisation/docker.nix
··· 126 126 ''; 127 127 }; 128 128 }; 129 + 130 + package = mkOption { 131 + default = pkgs.docker; 132 + type = types.package; 133 + example = pkgs.docker-edge; 134 + description = '' 135 + Docker package to be used in the module. 136 + ''; 137 + }; 129 138 }; 130 139 131 140 ###### implementation 132 141 133 142 config = mkIf cfg.enable (mkMerge [{ 134 - environment.systemPackages = [ pkgs.docker ]; 143 + environment.systemPackages = [ cfg.package ]; 135 144 users.extraGroups.docker.gid = config.ids.gids.docker; 136 - systemd.packages = [ pkgs.docker ]; 145 + systemd.packages = [ cfg.package ]; 137 146 138 147 systemd.services.docker = { 139 148 wantedBy = optional cfg.enableOnBoot "multi-user.target"; ··· 142 151 ExecStart = [ 143 152 "" 144 153 '' 145 - ${pkgs.docker}/bin/dockerd \ 154 + ${cfg.package}/bin/dockerd \ 146 155 --group=docker \ 147 156 --host=fd:// \ 148 157 --log-driver=${cfg.logDriver} \ ··· 180 189 serviceConfig.Type = "oneshot"; 181 190 182 191 script = '' 183 - ${pkgs.docker}/bin/docker system prune -f ${toString cfg.autoPrune.flags} 192 + ${cfg.package}/bin/docker system prune -f ${toString cfg.autoPrune.flags} 184 193 ''; 185 194 186 195 startAt = optional cfg.autoPrune.enable cfg.autoPrune.dates;