1# This test checks charliecloud image construction and run 2 3{ pkgs, ... }: 4let 5 6 dockerfile = pkgs.writeText "Dockerfile" '' 7 FROM nix 8 RUN mkdir /home /tmp 9 RUN touch /etc/passwd /etc/group 10 CMD ["true"] 11 ''; 12 13in 14{ 15 name = "charliecloud"; 16 meta = with pkgs.lib.maintainers; { 17 maintainers = [ bzizou ]; 18 }; 19 20 nodes = { 21 host = 22 { ... }: 23 { 24 environment.systemPackages = [ pkgs.charliecloud ]; 25 virtualisation.docker.enable = true; 26 users.users.alice = { 27 isNormalUser = true; 28 extraGroups = [ "docker" ]; 29 }; 30 }; 31 }; 32 33 testScript = '' 34 host.start() 35 host.wait_for_unit("docker.service") 36 host.succeed( 37 'su - alice -c "docker load --input=${pkgs.dockerTools.examples.nix}"' 38 ) 39 host.succeed( 40 "cp ${dockerfile} /home/alice/Dockerfile" 41 ) 42 host.succeed('su - alice -c "ch-build -t hello ."') 43 host.succeed('su - alice -c "ch-builder2tar hello /var/tmp"') 44 host.succeed('su - alice -c "ch-tar2dir /var/tmp/hello.tar.gz /var/tmp"') 45 host.succeed('su - alice -c "ch-run /var/tmp/hello -- echo Running_From_Container_OK"') 46 ''; 47}