at master 1.4 kB view raw
1# This test runs docker and checks if simple container starts 2{ lib, pkgs, ... }: 3{ 4 name = "docker-rootless"; 5 meta = with pkgs.lib.maintainers; { 6 maintainers = [ ]; 7 }; 8 9 nodes = { 10 machine = 11 { pkgs, ... }: 12 { 13 virtualisation.docker.rootless.enable = true; 14 15 users.users.alice = { 16 uid = 1000; 17 isNormalUser = true; 18 }; 19 }; 20 }; 21 22 testScript = 23 { nodes, ... }: 24 let 25 user = nodes.machine.config.users.users.alice; 26 sudo = lib.concatStringsSep " " [ 27 "XDG_RUNTIME_DIR=/run/user/${toString user.uid}" 28 "DOCKER_HOST=unix:///run/user/${toString user.uid}/docker.sock" 29 "sudo" 30 "--preserve-env=XDG_RUNTIME_DIR,DOCKER_HOST" 31 "-u" 32 "alice" 33 ]; 34 in 35 '' 36 machine.wait_for_unit("multi-user.target") 37 38 machine.succeed("loginctl enable-linger alice") 39 machine.wait_until_succeeds("${sudo} systemctl --user is-active docker.service") 40 41 machine.succeed("tar cv --files-from /dev/null | ${sudo} docker import - scratchimg") 42 machine.succeed( 43 "${sudo} docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10" 44 ) 45 machine.succeed("${sudo} docker ps | grep sleeping") 46 machine.succeed("${sudo} docker stop sleeping") 47 ''; 48}