From 9616473c3a9cc845a0a5516a4f3bf4f317a67fec Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 9 Oct 2021 15:07:50 -0400 Subject: [PATCH] fix: ensure we retire any alternate tags Dokku currently injects an alternate tag into the image. Without this change, deploying new image tags (via push with a Dockerfile or git:from-image) would result in the old images lying around forever. This change ensures they are registered for removal. Closes #4825 --- plugins/scheduler-docker-local/scheduler-register-retired | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/scheduler-docker-local/scheduler-register-retired b/plugins/scheduler-docker-local/scheduler-register-retired index dd813729e..097bb8884 100755 --- a/plugins/scheduler-docker-local/scheduler-register-retired +++ b/plugins/scheduler-docker-local/scheduler-register-retired @@ -19,7 +19,13 @@ trigger-scheduler-docker-local-scheduler-register-retired() { fn-scheduler-docker-local-register-retired "container" "$APP" "$CONTAINER_ID" "$WAIT" if [[ -n "$IMAGE_ID" ]] && [[ -z "$DOKKU_SKIP_IMAGE_CLEANUP_REGISTRATION" ]]; then + ALT_IMAGE_TAG="$("$DOCKER_BIN" image inspect --format '{{ index .Config.Labels "com.dokku.docker-image-labeler/alternate-tags" }}' "$IMAGE_ID" 2>/dev/null || true)" + fn-scheduler-docker-local-register-retired "image" "$APP" "$IMAGE_ID" "$WAIT" + if [[ -n "$ALT_IMAGE_TAG" ]]; then + ALT_IMAGE_ID="$("$DOCKER_BIN" image inspect --format '{{ .Id }}' "$(echo "$ALT_IMAGE_TAG" | jq -r ".[]")" 2>/dev/null || true)" + fn-scheduler-docker-local-register-retired "image" "$APP" "$(echo "$ALT_IMAGE_ID" | cut -d ':' -f2)" "$WAIT" + fi fi }