You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.0 KiB
44 lines
1.0 KiB
# This file is controlled by /etc/dotfiles/README.org
|
|
{ config, options, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
with lib.types;
|
|
let cfg = config.modules.docker;
|
|
|
|
myDockerNuke = pkgs.writeShellScriptBin "docker-nuke" ''
|
|
docker stop $(docker ps -aq)
|
|
docker rm $(docker ps -aq)
|
|
|
|
docker network prune -f
|
|
docker rmi -f $(docker images --filter dangling=true -qa)
|
|
docker volume rm $(docker volume ls --filter dangling=true -q)
|
|
docker rmi -f $(docker images -qa)
|
|
'';
|
|
|
|
in {
|
|
options.modules.docker = {
|
|
enable = mkOption {
|
|
type = bool;
|
|
default = false;
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
# Enable the docker virutalization platform.
|
|
virtualisation.docker = {
|
|
enable = true;
|
|
enableOnBoot = true;
|
|
autoPrune.enable = true;
|
|
};
|
|
|
|
# Required for the `docker' command.
|
|
users.users.chris.extraGroups = [ "docker" ];
|
|
|
|
# Add docker extensions.
|
|
environment.systemPackages = [
|
|
myDockerNuke
|
|
pkgs.docker-compose
|
|
pkgs.docker-machine
|
|
];
|
|
};
|
|
}
|