docker-cli: add docker contexts support

Adds docker-cli.contexts support. This allows declarative configuration
of [docker
contexts](https://docs.docker.com/engine/manage-resources/contexts/).
This commit is contained in:
will 2025-09-28 09:45:58 +10:00 committed by Austin Horstman
parent 25ca7d297f
commit 990e5ce679
4 changed files with 93 additions and 1 deletions

View file

@ -0,0 +1,36 @@
{
config,
...
}:
{
programs.docker-cli = {
enable = true;
configDir = ".docker2";
contexts = {
example = {
Metadata = {
Description = "example1";
};
Endpoints = {
docker = {
Host = "unix://example2";
};
};
};
};
};
nmt.script =
let
cfgDocker = config.programs.docker-cli;
configTestPath = "home-files/${cfgDocker.configDir}/contexts/meta/50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c/meta.json";
in
''
assertPathNotExists home-files/.docker/config.json
assertFileExists ${configTestPath}
assertFileContent ${configTestPath} \
${./example-contexts.json}
'';
}