{ config, lib, ... }: { options.snowflake.virtualisation.docker = { enable = lib.mkEnableOption "enable docker daemon"; extraOptions = lib.mkOption { type = lib.types.str; default = ""; description = "extra options to pass to docker compose"; }; # Notes: You can use the following command to use GPU inside docker container # docker run -it --rm --device nvidia.com/gpu=all ubuntu nvidia-smi enableNvidia = lib.mkEnableOption "enable nvidia with docker"; }; config = lib.mkIf config.snowflake.virtualisation.docker.enable { hardware.nvidia-container-toolkit.enable = config.snowflake.virtualisation.docker.enableNvidia; virtualisation = { docker = { enable = true; extraOptions = config.snowflake.virtualisation.docker.extraOptions; }; }; }; }