Add docker module

This commit is contained in:
Fern Garden 2025-09-15 12:37:51 +08:00
parent 7cbf708ecf
commit a8f637704a
9 changed files with 68 additions and 34 deletions

View file

@ -0,0 +1,46 @@
{
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;
liveRestore = 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";
};
};
}