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