summaryrefslogtreecommitdiff
path: root/modules/docker-desktop.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/docker-desktop.nix')
-rw-r--r--modules/docker-desktop.nix41
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
+ ];
+
+ };
+
+}