31 lines
1.2 KiB
Nix
31 lines
1.2 KiB
Nix
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
|
|
|
|
testService {
|
|
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;
|
|
}
|