dockerTools.buildImage: add option to use nix output hash as tag

This commit is contained in:
Mathias Schreck
2018-06-29 19:20:55 +02:00
committed by Profpatsch
parent 588dbd714e
commit 39e678e24e
3 changed files with 17 additions and 4 deletions

View File

@@ -420,8 +420,8 @@ rec {
buildImage = args@{
# Image name.
name,
# Image tag.
tag ? "latest",
# Image tag, when null then the nix output hash will be used.
tag ? null,
# Parent image, to append to.
fromImage ? null,
# Name of the parent image; will be read from the image otherwise.
@@ -471,12 +471,19 @@ rec {
buildInputs = [ jshon pigz coreutils findutils jq ];
# Image name and tag must be lowercase
imageName = lib.toLower name;
imageTag = lib.toLower tag;
imageTag = if tag == null then "" else lib.toLower tag;
inherit fromImage baseJson;
layerClosure = writeReferencesToFile layer;
passthru.buildArgs = args;
passthru.layer = layer;
} ''
${lib.optionalString (tag == null) ''
outName="$(basename "$out")"
outHash=$(echo "$outName" | cut -d - -f 1)
imageTag=$outHash
''}
# Print tar contents:
# 1: Interpreted as relative to the root directory
# 2: With no trailing slashes on directories