at master 1.2 kB view raw
1# This test runs a container through gvisor and checks if simple container starts 2 3{ pkgs, ... }: 4{ 5 name = "gvisor"; 6 meta = with pkgs.lib.maintainers; { 7 maintainers = [ ]; 8 }; 9 10 nodes = { 11 gvisor = 12 { pkgs, ... }: 13 { 14 virtualisation.docker = { 15 enable = true; 16 extraOptions = "--add-runtime runsc=${pkgs.gvisor}/bin/runsc"; 17 }; 18 19 networking = { 20 dhcpcd.enable = false; 21 defaultGateway = "192.168.1.1"; 22 interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [ 23 { 24 address = "192.168.1.2"; 25 prefixLength = 24; 26 } 27 ]; 28 }; 29 }; 30 }; 31 32 testScript = '' 33 start_all() 34 35 gvisor.wait_for_unit("network.target") 36 gvisor.wait_for_unit("sockets.target") 37 38 # Test the Docker runtime 39 gvisor.succeed("tar cv --files-from /dev/null | docker import - scratchimg") 40 gvisor.succeed( 41 "docker run -d --name=sleeping --runtime=runsc -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10" 42 ) 43 gvisor.succeed("docker ps | grep sleeping") 44 gvisor.succeed("docker stop sleeping") 45 ''; 46}