diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-03-11 00:43:18 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-03-11 00:43:18 +0000 |
commit | a6dea5a6f496ea38f56e3c3b4c5d628361cc029f (patch) | |
tree | 8300ad67b0135e6816ab38a6ac6f8fdaeccda2f0 /nixpkgs/nixos/modules/virtualisation | |
parent | 8779e0045c9f218caeb1dd1bcdc87e2715ed5be5 (diff) | |
parent | 5d3fd3674a66c5b1ada63e2eace140519849c967 (diff) | |
download | nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.gz nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.bz2 nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.lz nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.xz nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.zst nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.zip |
Merge commit '5d3fd3674a66c5b1ada63e2eace140519849c967'
Diffstat (limited to 'nixpkgs/nixos/modules/virtualisation')
-rw-r--r-- | nixpkgs/nixos/modules/virtualisation/docker.nix | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/nixpkgs/nixos/modules/virtualisation/docker.nix b/nixpkgs/nixos/modules/virtualisation/docker.nix index a1a32c1c59a1..4ee84c5268e6 100644 --- a/nixpkgs/nixos/modules/virtualisation/docker.nix +++ b/nixpkgs/nixos/modules/virtualisation/docker.nix @@ -52,6 +52,15 @@ in ''; }; + enableNvidia = + mkOption { + type = types.bool; + default = false; + description = '' + Enable nvidia-docker wrapper, supporting NVIDIA GPUs inside docker containers. + ''; + }; + liveRestore = mkOption { type = types.bool; @@ -140,7 +149,8 @@ in ###### implementation config = mkIf cfg.enable (mkMerge [{ - environment.systemPackages = [ cfg.package ]; + environment.systemPackages = [ cfg.package ] + ++ optional cfg.enableNvidia pkgs.nvidia-docker; users.groups.docker.gid = config.ids.gids.docker; systemd.packages = [ cfg.package ]; @@ -157,6 +167,7 @@ in --log-driver=${cfg.logDriver} \ ${optionalString (cfg.storageDriver != null) "--storage-driver=${cfg.storageDriver}"} \ ${optionalString cfg.liveRestore "--live-restore" } \ + ${optionalString cfg.enableNvidia "--add-runtime nvidia=${pkgs.nvidia-docker}/bin/nvidia-container-runtime" } \ ${cfg.extraOptions} '']; ExecReload=[ @@ -165,7 +176,8 @@ in ]; }; - path = [ pkgs.kmod ] ++ (optional (cfg.storageDriver == "zfs") pkgs.zfs); + path = [ pkgs.kmod ] ++ optional (cfg.storageDriver == "zfs") pkgs.zfs + ++ optional cfg.enableNvidia pkgs.nvidia-docker; }; systemd.sockets.docker = { @@ -179,7 +191,6 @@ in }; }; - systemd.services.docker-prune = { description = "Prune docker resources"; @@ -194,7 +205,15 @@ in startAt = optional cfg.autoPrune.enable cfg.autoPrune.dates; }; + + assertions = [ + { assertion = cfg.enableNvidia -> config.hardware.opengl.driSupport32Bit or false; + message = "Option enableNvidia requires 32bit support libraries"; + }]; } + (mkIf cfg.enableNvidia { + environment.etc."nvidia-container-runtime/config.toml".source = "${pkgs.nvidia-docker}/etc/config.toml"; + }) ]); imports = [ |