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