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
|
# 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 load --input='${pkgs.dockerTools.examples.layered-on-top}'");
|
||||||
$docker->succeed("docker run --rm ${pkgs.dockerTools.examples.layered-on-top.imageName}");
|
$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";
|
runAsRoot = "touch /example-file";
|
||||||
fromImage = bash;
|
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…
x
Reference in New Issue
Block a user