diff options
author | Daniël de Kok <me@danieldk.eu> | 2019-06-06 10:39:50 +0200 |
---|---|---|
committer | Daniël de Kok <me@danieldk.eu> | 2019-06-06 15:03:08 +0200 |
commit | 3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258 (patch) | |
tree | 3f544ab7cffefb723680a1f124a26e8a7b8be949 /nixos/tests/docker-tools.nix | |
parent | 7e6756af41944569fc2d7903ff122b1d56170e21 (diff) | |
download | nixpkgs-3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258.tar nixpkgs-3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258.tar.gz nixpkgs-3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258.tar.bz2 nixpkgs-3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258.tar.lz nixpkgs-3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258.tar.xz nixpkgs-3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258.tar.zst nixpkgs-3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258.zip |
nixos/tests/docker-tools: check layer sharing with buildLayeredImage
Adapted from grahamc's blog post on layered Docker images in Nix: https://grahamc.com/blog/nix-and-layered-docker-images
Diffstat (limited to 'nixos/tests/docker-tools.nix')
-rw-r--r-- | nixos/tests/docker-tools.nix | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index f91121077ea..9ab1a71f331 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -68,6 +68,12 @@ import ./make-test.nix ({ pkgs, ... }: { $docker->succeed("docker load --input='${pkgs.dockerTools.examples.layered-on-top}'"); $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.layered-on-top.imageName}"); + # Ensure layers are shared between images + $docker->succeed("docker load --input='${pkgs.dockerTools.examples.another-layered-image}'"); + $docker->succeed("docker inspect ${pkgs.dockerTools.examples.layered-image.imageName} | ${pkgs.jq}/bin/jq -r '.[] | .RootFS.Layers | .[]' | sort > layers1.sha256"); + $docker->succeed("docker inspect ${pkgs.dockerTools.examples.another-layered-image.imageName} | ${pkgs.jq}/bin/jq -r '.[] | .RootFS.Layers | .[]' | sort > layers2.sha256"); + $docker->succeed('[ $(comm -1 -2 layers1.sha256 layers2.sha256 | wc -l) -ne 0 ]'); + # Ensure order of layers is correct $docker->succeed("docker load --input='${pkgs.dockerTools.examples.layersOrder}'"); $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.layersOrder.imageName} cat /tmp/layer1 | grep -q layer1"); |