37 lines
1017 B
Nix
37 lines
1017 B
Nix
{ ... }: {
|
|
flake.nixosModules.systemDocker =
|
|
{ config, lib, pkgs, ... }:
|
|
let
|
|
cfg = config.chiasson.system.docker;
|
|
in
|
|
{
|
|
options.chiasson.system.docker = {
|
|
enable = lib.mkEnableOption ''
|
|
`virtualisation.docker` — add users to `docker` if they need the socket.
|
|
'';
|
|
|
|
compose.enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = true;
|
|
description = "Install `docker-compose` in `environment.systemPackages`.";
|
|
};
|
|
|
|
daemonSettings = lib.mkOption {
|
|
type = lib.types.attrs;
|
|
default = { };
|
|
description = "Merged into `virtualisation.docker.daemon.settings`.";
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
virtualisation.docker = {
|
|
enable = true;
|
|
enableOnBoot = true;
|
|
daemon.settings = cfg.daemonSettings;
|
|
};
|
|
|
|
environment.systemPackages = lib.optionals cfg.compose.enable [ pkgs.docker-compose ];
|
|
};
|
|
};
|
|
}
|