diff options
Diffstat (limited to 'modules/docker-desktop.nix')
| -rw-r--r-- | modules/docker-desktop.nix | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/docker-desktop.nix b/modules/docker-desktop.nix new file mode 100644 index 0000000..e2ae076 --- /dev/null +++ b/modules/docker-desktop.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: +with builtins; with lib; { + + imports = [ + (mkRenamedOptionModule [ "wsl" "docker" ] [ "wsl" "docker-desktop" ]) + ]; + + options.wsl.docker-desktop = with types; { + enable = mkEnableOption "Docker Desktop integration"; + }; + + config = + let + cfg = config.wsl.docker-desktop; + in + mkIf (config.wsl.enable && cfg.enable) { + + environment.systemPackages = with pkgs; [ + docker + docker-compose + ]; + + systemd.services.docker-desktop-proxy = { + description = "Docker Desktop proxy"; + script = '' + ${config.wsl.wslConf.automount.root}/wsl/docker-desktop/docker-desktop-user-distro proxy --docker-desktop-root ${config.wsl.wslConf.automount.root}/wsl/docker-desktop + ''; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Restart = "on-failure"; + RestartSec = "30s"; + }; + }; + + users.groups.docker.members = [ + config.wsl.defaultUser + ]; + + }; + +} |
