diff --git a/scripts/build_release.sh b/scripts/build_release.sh index 46927cf..4eb6821 100755 --- a/scripts/build_release.sh +++ b/scripts/build_release.sh @@ -2,8 +2,9 @@ set -e -tag="$REGISTRY/$SERVICE:${COMMIT_SHA:0:10}" -latest_tag="$REGISTRY/$SERVICE:latest" +base_tag=$REGISTRY/$SERVICE +tag="$base_tag:${COMMIT_SHA:0:10}" +latest_tag="$base_tag:latest" if [[ -n $DEBUG ]] then @@ -17,6 +18,25 @@ fi echo "docker: logging in" docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD -DOCKER_BUILDKIT=1 docker build -t "$tag" --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $latest_tag -f "$TMP/build_release.Dockerfile" . +export DOCKER_BUILDKIT=1 + +function build_target { + target=$1 + echo "building $target" + target_tag="$base_tag-$target:${COMMIT_SHA:0:10}" + latest_target_tag="$base_tag-$target:latest" + docker build \ + --target "$target" \ + --tag "$target_tag" \ + --build-arg BUILDKIT_INLINE_CACHE=1 \ + --cache-from $latest_tag \ + --file "$TMP/build_release.Dockerfile" . + docker tag "$target_tag" "$latest_target_tag" +} + +build_target "deps" +build_target "builder" + +docker build -t "$tag" --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $latest_tag -f "$TMP/build_release.Dockerfile" . docker tag "$tag" "$latest_tag" diff --git a/scripts/push_release.sh b/scripts/push_release.sh index d13b764..e9c455a 100755 --- a/scripts/push_release.sh +++ b/scripts/push_release.sh @@ -3,6 +3,7 @@ set -e tag="$REGISTRY/$SERVICE:${COMMIT_SHA:0:10}" +latest_tag="$REGISTRY/$SERVICE:latest" if [[ -n $DEBUG ]] then @@ -16,5 +17,18 @@ fi echo "docker: logging in" docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD +export DOCKER_BUILDKIT=1 + +function build_target { + target=$1 + echo "building $target" + latest_target_tag="$base_tag-$target:latest" + docker push "$latest_target_tag" +} + +build_target "deps" +build_target "builder" + echo "docker: pushing image $tag" -DOCKER_BUILDKIT=1 docker push "$tag" +docker push "$tag" +docker push "$latest_tag"