at 18.03-beta 1.5 kB view raw
1# This test runs docker and checks if simple container starts 2 3import ./make-test.nix ({ pkgs, ...} : { 4 name = "docker"; 5 meta = with pkgs.stdenv.lib.maintainers; { 6 maintainers = [ nequissimus offline ]; 7 }; 8 9 nodes = { 10 docker = 11 { config, pkgs, ... }: 12 { 13 virtualisation.docker.enable = true; 14 virtualisation.docker.package = pkgs.docker; 15 16 users.users = { 17 noprivs = { 18 isNormalUser = true; 19 description = "Can't access the docker daemon"; 20 password = "foobar"; 21 }; 22 23 hasprivs = { 24 isNormalUser = true; 25 description = "Can access the docker daemon"; 26 password = "foobar"; 27 extraGroups = [ "docker" ]; 28 }; 29 }; 30 }; 31 }; 32 33 testScript = '' 34 startAll; 35 36 $docker->waitForUnit("sockets.target"); 37 $docker->succeed("tar cv --files-from /dev/null | docker import - scratchimg"); 38 $docker->succeed("docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"); 39 $docker->succeed("docker ps | grep sleeping"); 40 $docker->succeed("sudo -u hasprivs docker ps"); 41 $docker->fail("sudo -u noprivs docker ps"); 42 $docker->succeed("docker stop sleeping"); 43 44 # Must match version twice to ensure client and server versions are correct 45 $docker->succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "2" ]'); 46 ''; 47})