flock/modules/docker/default.nix

45 lines
916 B
Nix

{
config,
lib,
...
}:
with lib; let
cfg = config.flock.docker;
in {
options = {
flock.docker = {
enable = mkEnableOption "Enable Docker";
dockerMount = mkEnableOption "Mount disk as Docker directory";
};
};
config =
mkIf cfg.enable
{
# Add user to docker group.
users.users.fern = {
extraGroups = ["docker"];
};
# Enable docker.
virtualisation.docker = {
enable = true;
autoPrune.enable = true;
daemon.settings = {
data-root = "/home/fern/docker/daemon";
default-address-pools = [
{
base = "172.20.0.0/12";
size = 24;
}
];
};
};
# Docker data directory
fileSystems."/home/fern/docker" = mkIf (cfg.dockerMount) {
device = "/dev/disk/by-label/docker";
fsType = "ext4";
};
};
}