mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 16:33:15 +00:00
nixos/tests/docker-tools: verify order of layers in stacked images
This commit is contained in:
parent
a7eef11bb4
commit
5ef1223f30
@ -67,5 +67,12 @@ import ./make-test.nix ({ pkgs, ... }: {
|
||||
# Ensure building an image on top of a layered Docker images work
|
||||
$docker->succeed("docker load --input='${pkgs.dockerTools.examples.layered-on-top}'");
|
||||
$docker->succeed("docker run --rm ${pkgs.dockerTools.examples.layered-on-top.imageName}");
|
||||
|
||||
# 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");
|
||||
# This is to be sure the order of layers of the parent image is preserved
|
||||
$docker->succeed("docker run --rm ${pkgs.dockerTools.examples.layersOrder.imageName} cat /tmp/layer2 | grep -q layer2");
|
||||
$docker->succeed("docker run --rm ${pkgs.dockerTools.examples.layersOrder.imageName} cat /tmp/layer3 | grep -q layer3");
|
||||
'';
|
||||
})
|
||||
|
@ -187,4 +187,43 @@ rec {
|
||||
runAsRoot = "touch /example-file";
|
||||
fromImage = bash;
|
||||
};
|
||||
|
||||
# 13. example of 3 layers images This image is used to verify the
|
||||
# order of layers is correct.
|
||||
# It allows to validate
|
||||
# - the layer of parent are below
|
||||
# - the order of parent layer is preserved at image build time
|
||||
# (this is why there are 3 images)
|
||||
layersOrder = let
|
||||
l1 = pkgs.dockerTools.buildImage {
|
||||
name = "l1";
|
||||
tag = "latest";
|
||||
extraCommands = ''
|
||||
mkdir -p tmp
|
||||
echo layer1 > tmp/layer1
|
||||
echo layer1 > tmp/layer2
|
||||
echo layer1 > tmp/layer3
|
||||
'';
|
||||
};
|
||||
l2 = pkgs.dockerTools.buildImage {
|
||||
name = "l2";
|
||||
fromImage = l1;
|
||||
tag = "latest";
|
||||
extraCommands = ''
|
||||
mkdir -p tmp
|
||||
echo layer2 > tmp/layer2
|
||||
echo layer2 > tmp/layer3
|
||||
'';
|
||||
};
|
||||
in pkgs.dockerTools.buildImage {
|
||||
name = "l3";
|
||||
fromImage = l2;
|
||||
tag = "latest";
|
||||
contents = [ pkgs.coreutils ];
|
||||
extraCommands = ''
|
||||
mkdir -p tmp
|
||||
echo layer3 > tmp/layer3
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user