nix-processmgmt-services/tests/docker/default.nix

32 lines
1.2 KiB
Nix

{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "docker";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;
};
systemPackages = [ pkgs.docker ];
readiness = {instanceName, instance, runtimeDir, ...}:
''
machine.wait_for_file("${runtimeDir}/${instanceName}.sock")
'';
tests = {instanceName, instance, stateDir, runtimeDir, forceDisableUserChange, ...}:
# The primary instance should be connectible with the default parameters
if instanceName == "docker" && !forceDisableUserChange then ''
machine.succeed("docker info | grep 'Docker Root Dir: ${stateDir}/lib/${instanceName}'")
'' else ''
machine.succeed(
"docker --host=unix://${runtimeDir}/${instanceName}.sock info | grep 'Docker Root Dir: ${stateDir}/lib/${instanceName}'"
)
'';
# It is useless to run Docker in Docker
processManagers = builtins.filter (processManager: processManager != "docker") processManagers;
# There's an experimental rootless feature for Docker, but a hassle to setup. As a result, we disable unprivileged mode
profiles = builtins.filter (profile: profile == "privileged") profiles;
}