nixosTests.docker-tools: Use both code paths in includeStorePath test

This commit is contained in:
Robert Hensing 2024-01-17 13:46:41 +01:00
parent 8353fad13d
commit 1f9e86f314
2 changed files with 26 additions and 0 deletions

View file

@ -71,16 +71,29 @@ in {
docker.succeed("${examples.helloOnRoot} | docker load") docker.succeed("${examples.helloOnRoot} | docker load")
docker.succeed("docker run --rm hello | grep -i hello") docker.succeed("docker run --rm hello | grep -i hello")
docker.succeed("docker image rm hello:latest") docker.succeed("docker image rm hello:latest")
with subtest("includeStorePath = false; breaks example"): with subtest("includeStorePath = false; breaks example"):
docker.succeed("${examples.helloOnRootNoStore} | docker load") docker.succeed("${examples.helloOnRootNoStore} | docker load")
docker.fail("docker run --rm hello | grep -i hello") docker.fail("docker run --rm hello | grep -i hello")
docker.succeed("docker image rm hello:latest") docker.succeed("docker image rm hello:latest")
with subtest("includeStorePath = false; breaks example (fakechroot)"):
docker.succeed("${examples.helloOnRootNoStoreFakechroot} | docker load")
docker.fail("docker run --rm hello | grep -i hello")
docker.succeed("docker image rm hello:latest")
with subtest("Ensure ZERO paths are added to the store"): with subtest("Ensure ZERO paths are added to the store"):
docker.fail("${examples.helloOnRootNoStore} | ${pkgs.crane}/bin/crane export - - | tar t | grep 'nix/store/'") docker.fail("${examples.helloOnRootNoStore} | ${pkgs.crane}/bin/crane export - - | tar t | grep 'nix/store/'")
with subtest("Ensure ZERO paths are added to the store (fakechroot)"):
docker.fail("${examples.helloOnRootNoStoreFakechroot} | ${pkgs.crane}/bin/crane export - - | tar t | grep 'nix/store/'")
with subtest("includeStorePath = false; works with mounted store"): with subtest("includeStorePath = false; works with mounted store"):
docker.succeed("${examples.helloOnRootNoStore} | docker load") docker.succeed("${examples.helloOnRootNoStore} | docker load")
docker.succeed("docker run --rm --volume ${builtins.storeDir}:${builtins.storeDir}:ro hello | grep -i hello") docker.succeed("docker run --rm --volume ${builtins.storeDir}:${builtins.storeDir}:ro hello | grep -i hello")
docker.succeed("docker image rm hello:latest") docker.succeed("docker image rm hello:latest")
with subtest("includeStorePath = false; works with mounted store (fakechroot)"):
docker.succeed("${examples.helloOnRootNoStoreFakechroot} | docker load")
docker.succeed("docker run --rm --volume ${builtins.storeDir}:${builtins.storeDir}:ro hello | grep -i hello")
docker.succeed("docker image rm hello:latest")
with subtest("Ensure Docker images use a stable date by default"): with subtest("Ensure Docker images use a stable date by default"):
docker.succeed( docker.succeed(

View file

@ -637,6 +637,19 @@ rec {
]; ];
config.Cmd = [ "hello" ]; config.Cmd = [ "hello" ];
includeStorePaths = false; includeStorePaths = false;
};
helloOnRootNoStoreFakechroot = pkgs.dockerTools.streamLayeredImage {
name = "hello";
tag = "latest";
contents = [
(pkgs.buildEnv {
name = "hello-root";
paths = [ pkgs.hello ];
})
];
config.Cmd = [ "hello" ];
includeStorePaths = false;
enableFakechroot = true; enableFakechroot = true;
}; };