yumeami/modules/nixos/virtualization/docker/default.nix
C4 Patino 0fd70dd3f8
Some checks failed
ci / treefmt (push) Failing after 4s
feat: fix all initial impermanence perm folder creation
2026-07-01 01:45:06 -05:00

55 lines
1.4 KiB
Nix

{
config,
lib,
namespace,
pkgs,
...
}: let
inherit (lib) mkIf mkEnableOption mkOverride;
inherit (lib.${namespace}) getAttrByNamespace mkOptionsWithNamespace mkPersistRootDir;
base = "${namespace}.virtualization.docker";
cfg = getAttrByNamespace config base;
nvdaCfg = getAttrByNamespace config "${namespace}.hardware.nvidia";
in {
options = mkOptionsWithNamespace base {
enable = mkEnableOption "docker";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [libnvidia-container nvidia-container-toolkit];
hardware.nvidia-container-toolkit.enable = nvdaCfg.enable;
virtualisation = {
containers = {
enable = true;
containersConf.settings.containers.label = false;
};
docker = {
enable = true;
rootless = {
enable = true;
setSocketVariable = true;
};
daemon.settings = {
hosts = ["unix:///var/run/docker.sock" "tcp://0.0.0.0:2376"];
runtimes = {
nvidia = {
args = [];
path = "nvidia-container-runtime";
};
};
};
};
oci-containers.backend = mkOverride 0 "docker";
};
networking.firewall.allowedTCPPorts = [2376];
${namespace}.services.storage.impermanence.folders = [
(mkPersistRootDir config "/var/lib/docker")
];
};
}