diff options
author | Robert Hensing <roberth@users.noreply.github.com> | 2021-04-16 09:17:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-16 09:17:44 +0200 |
commit | 578acc7a42aaf6ecc31f75dc9fbc8919899762a0 (patch) | |
tree | 8c235334ffb1c91565deedce41499b44f1241028 /nixos | |
parent | f02d9c6626995bb29d7f4fb794b583b9ec85b3c8 (diff) | |
parent | 10019ab87995ec72e62af95a8b056db9a2e8a341 (diff) | |
download | nixlib-578acc7a42aaf6ecc31f75dc9fbc8919899762a0.tar nixlib-578acc7a42aaf6ecc31f75dc9fbc8919899762a0.tar.gz nixlib-578acc7a42aaf6ecc31f75dc9fbc8919899762a0.tar.bz2 nixlib-578acc7a42aaf6ecc31f75dc9fbc8919899762a0.tar.lz nixlib-578acc7a42aaf6ecc31f75dc9fbc8919899762a0.tar.xz nixlib-578acc7a42aaf6ecc31f75dc9fbc8919899762a0.tar.zst nixlib-578acc7a42aaf6ecc31f75dc9fbc8919899762a0.zip |
Merge pull request #118018 from considerate/master
dockerTools: Implement merging of image tarballs
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/tests/docker-tools.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index 80d527b453fa..96662b4540cc 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -321,5 +321,48 @@ import ./make-test-python.nix ({ pkgs, ... }: { docker.succeed( "docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'" ) + + with subtest("Ensure docker load on merged images loads all of the constituent images"): + docker.succeed( + "docker load --input='${examples.mergedBashAndRedis}'" + ) + docker.succeed( + "docker images --format '{{.Repository}}-{{.Tag}}' | grep -F '${examples.bash.imageName}-${examples.bash.imageTag}'" + ) + docker.succeed( + "docker images --format '{{.Repository}}-{{.Tag}}' | grep -F '${examples.redis.imageName}-${examples.redis.imageTag}'" + ) + docker.succeed("docker run --rm ${examples.bash.imageName} bash --version") + docker.succeed("docker run --rm ${examples.redis.imageName} redis-cli --version") + docker.succeed("docker rmi ${examples.bash.imageName}") + docker.succeed("docker rmi ${examples.redis.imageName}") + + with subtest( + "Ensure docker load on merged images loads all of the constituent images (missing tags)" + ): + docker.succeed( + "docker load --input='${examples.mergedBashNoTagAndRedis}'" + ) + docker.succeed( + "docker images --format '{{.Repository}}-{{.Tag}}' | grep -F '${examples.bashNoTag.imageName}-${examples.bashNoTag.imageTag}'" + ) + docker.succeed( + "docker images --format '{{.Repository}}-{{.Tag}}' | grep -F '${examples.redis.imageName}-${examples.redis.imageTag}'" + ) + # we need to explicitly specify the generated tag here + docker.succeed( + "docker run --rm ${examples.bashNoTag.imageName}:${examples.bashNoTag.imageTag} bash --version" + ) + docker.succeed("docker run --rm ${examples.redis.imageName} redis-cli --version") + docker.succeed("docker rmi ${examples.bashNoTag.imageName}:${examples.bashNoTag.imageTag}") + docker.succeed("docker rmi ${examples.redis.imageName}") + + with subtest("mergeImages preserves owners of the original images"): + docker.succeed( + "docker load --input='${examples.mergedBashFakeRoot}'" + ) + docker.succeed( + "docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'" + ) ''; }) |