Merge pull request #92934 from hercules-ci/dockerTools-set-imageTag

dockerTools: Always set imageTag attribute
This commit is contained in:
Robert Hensing
2020-07-16 17:05:58 +02:00
committed by GitHub
3 changed files with 67 additions and 0 deletions

View File

@@ -442,6 +442,7 @@ rec {
in
runCommand "${name}.tar.gz" {
inherit (stream) imageName;
passthru = { inherit (stream) imageTag; };
buildInputs = [ pigz ];
} "${stream} | pigz -nT > $out";
@@ -517,6 +518,11 @@ rec {
layerClosure = writeReferencesToFile layer;
passthru.buildArgs = args;
passthru.layer = layer;
passthru.imageTag =
if tag != null
then lib.toLower tag
else
lib.head (lib.strings.splitString "-" (baseNameOf result.outPath));
# Docker can't be made to run darwin binaries
meta.badPlatforms = lib.platforms.darwin;
} ''
@@ -737,6 +743,11 @@ rec {
conf = runCommand "${name}-conf.json" {
inherit maxLayers created;
imageName = lib.toLower name;
passthru.imageTag =
if tag != null
then tag
else
lib.head (lib.strings.splitString "-" (baseNameOf conf.outPath));
paths = referencesByPopularity overallClosure;
buildInputs = [ jq ];
} ''
@@ -792,6 +803,7 @@ rec {
'';
result = runCommand "stream-${name}" {
inherit (conf) imageName;
passthru = { inherit (conf) imageTag; };
buildInputs = [ makeWrapper ];
} ''
makeWrapper ${streamScript} $out --add-flags ${conf}

View File

@@ -364,4 +364,22 @@ rec {
created = "now";
};
# buildImage without explicit tag
bashNoTag = pkgs.dockerTools.buildImage {
name = "bash-no-tag";
contents = pkgs.bashInteractive;
};
# buildLayeredImage without explicit tag
bashNoTagLayered = pkgs.dockerTools.buildLayeredImage {
name = "bash-no-tag-layered";
contents = pkgs.bashInteractive;
};
# buildImage without explicit tag
bashNoTagStreamLayered = pkgs.dockerTools.streamLayeredImage {
name = "bash-no-tag-stream-layered";
contents = pkgs.bashInteractive;
};
}