5f17aeb403
Commit 9bfe92ecee ("docker: Minor improvements, fix failing test") added the services.docker.storageDriver option, made it mandatory but didn't give it a default value. This results in an ugly traceback when users enable docker, if they don't pay enough attention to also set the storageDriver option. (An attempt was made to add an assertion, but it didn't work, possibly because of how "mkMerge" works.) The arguments against a default value were that the optimal value depends on the filesystem on the host. This is, AFAICT, only in part true. (It seems some backends are filesystem agnostic.) Also, docker itself uses a default storage driver, "devicemapper", when no --storage-driver=x options are given. Hence, we use the same value as default. Add a FIXME comment that 'devicemapper' breaks NixOS VM tests (for yet unknown reasons), so we still run those with the 'overlay' driver. Closes #10100 and #10217.
30 lines
898 B
Nix
30 lines
898 B
Nix
# This test runs docker and checks if simple container starts
|
|
|
|
import ./make-test.nix ({ pkgs, ...} : {
|
|
name = "docker";
|
|
meta = with pkgs.stdenv.lib.maintainers; {
|
|
maintainers = [ offline ];
|
|
};
|
|
|
|
nodes = {
|
|
docker =
|
|
{ config, pkgs, ... }:
|
|
{
|
|
virtualisation.docker.enable = true;
|
|
# FIXME: The default "devicemapper" storageDriver fails in NixOS VM
|
|
# tests.
|
|
virtualisation.docker.storageDriver = "overlay";
|
|
};
|
|
};
|
|
|
|
testScript = ''
|
|
startAll;
|
|
|
|
$docker->waitForUnit("docker.service");
|
|
$docker->succeed("tar cv --files-from /dev/null | docker import - scratchimg");
|
|
$docker->succeed("docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10");
|
|
$docker->succeed("docker ps | grep sleeping");
|
|
$docker->succeed("docker stop sleeping");
|
|
'';
|
|
})
|