summary refs log tree commit diff
path: root/nixos/tests/docker-tools.nix
diff options
context:
space:
mode:
authorDaniël de Kok <me@danieldk.eu>2019-06-06 10:39:50 +0200
committerDaniël de Kok <me@danieldk.eu>2019-06-06 15:03:08 +0200
commit3b0d5b5ed3815d3bf5cf1c85a6c8e17091ba7258 (patch)
tree3f544ab7cffefb723680a1f124a26e8a7b8be949 /nixos/tests/docker-tools.nix
parent7e6756af41944569fc2d7903ff122b1d56170e21 (diff)
downloadnixpkgs-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.nix6
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");