From af9e17ec8f1219641b9c0ccf28522e51f0d6df88 Mon Sep 17 00:00:00 2001 From: Michael Kriese <michael.kriese@visualon.de> Date: Fri, 9 Feb 2024 22:47:16 +0100 Subject: [PATCH] build: fix docker build cache (#27209) --- tools/docker/bake.hcl | 73 ++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 46 deletions(-) diff --git a/tools/docker/bake.hcl b/tools/docker/bake.hcl index e3ad02235e..8a93f1924e 100644 --- a/tools/docker/bake.hcl +++ b/tools/docker/bake.hcl @@ -5,7 +5,7 @@ variable "FILE" { default = "renovate" } variable "RENOVATE_VERSION" { - default = "unknown" + default = "" } variable "RENOVATE_MAJOR_VERSION" { default = "" @@ -43,15 +43,6 @@ group "push" { targets = [ "push-slim", "push-full", - "push-cache-slim", - "push-cache-full", - ] -} - -group "push-cache" { - targets = [ - "push-cache-slim", - "push-cache-full", ] } @@ -67,25 +58,31 @@ target "settings" { target "slim" { cache-from = [ + "type=registry,ref=ghcr.io/${OWNER}/${FILE}", "type=registry,ref=ghcr.io/${OWNER}/docker-build-cache:${FILE}", ] tags = [ "ghcr.io/${OWNER}/${FILE}", - "ghcr.io/${OWNER}/${FILE}:${RENOVATE_VERSION}", "${FILE}/${FILE}", - "${FILE}/${FILE}:${RENOVATE_VERSION}", + + // GitHub versioned tags + notequal("", RENOVATE_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_VERSION}": "", notequal("", RENOVATE_MAJOR_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_MAJOR_VERSION}": "", notequal("", RENOVATE_MAJOR_MINOR_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_MAJOR_MINOR_VERSION}": "", + + // Docker Hub versioned tags + notequal("", RENOVATE_VERSION) ? "${FILE}/${FILE}:${RENOVATE_VERSION}": "", notequal("", RENOVATE_MAJOR_VERSION) ? "${FILE}/${FILE}:${RENOVATE_MAJOR_VERSION}": "", notequal("", RENOVATE_MAJOR_MINOR_VERSION) ? "${FILE}/${FILE}:${RENOVATE_MAJOR_MINOR_VERSION}": "", - // TODO: legacy, remove on next major - "ghcr.io/${OWNER}/${FILE}-slim", - "ghcr.io/${OWNER}/${FILE}:${RENOVATE_VERSION}-slim", + // legacy slim tags + // TODO: remove on next major + "ghcr.io/${OWNER}/${FILE}:slim", "${FILE}/${FILE}:slim", - "${FILE}/${FILE}:${RENOVATE_VERSION}-slim", + notequal("", RENOVATE_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_VERSION}-slim": "", notequal("", RENOVATE_MAJOR_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_MAJOR_VERSION}-slim": "", notequal("", RENOVATE_MAJOR_MINOR_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_MAJOR_MINOR_VERSION}-slim": "", + notequal("", RENOVATE_VERSION) ? "${FILE}/${FILE}:${RENOVATE_VERSION}-slim": "", notequal("", RENOVATE_MAJOR_VERSION) ? "${FILE}/${FILE}:${RENOVATE_MAJOR_VERSION}-slim": "", notequal("", RENOVATE_MAJOR_MINOR_VERSION) ? "${FILE}/${FILE}:${RENOVATE_MAJOR_MINOR_VERSION}-slim": "", ] @@ -96,47 +93,25 @@ target "full" { BASE_IMAGE_TYPE = "full" } cache-from = [ + "type=registry,ref=ghcr.io/${OWNER}/${FILE}:full", "type=registry,ref=ghcr.io/${OWNER}/docker-build-cache:${FILE}-full", ] - tags = [ - "ghcr.io/${OWNER}/${FILE}:${RENOVATE_VERSION}-full", + tags = [ "ghcr.io/${OWNER}/${FILE}:full", "${FILE}/${FILE}:full", - "${FILE}/${FILE}:${RENOVATE_VERSION}-full", + + // GitHub versioned tags + notequal("", RENOVATE_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_VERSION}-full": "", notequal("", RENOVATE_MAJOR_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_MAJOR_VERSION}-full": "", notequal("", RENOVATE_MAJOR_MINOR_VERSION) ? "ghcr.io/${OWNER}/${FILE}:${RENOVATE_MAJOR_MINOR_VERSION}-full": "", + + // Docker Hub versioned tags + notequal("", RENOVATE_VERSION) ? "${FILE}/${FILE}:${RENOVATE_VERSION}-full": "", notequal("", RENOVATE_MAJOR_VERSION) ? "${FILE}/${FILE}:${RENOVATE_MAJOR_VERSION}-full": "", notequal("", RENOVATE_MAJOR_MINOR_VERSION) ? "${FILE}/${FILE}:${RENOVATE_MAJOR_MINOR_VERSION}-full": "", ] } -target "cache" { - output = ["type=registry"] - cache-to = ["type=inline,mode=max"] -} - -target "push-cache-slim" { - inherits = [ - "settings", - "cache", - "slim", - ] - tags = [ - "ghcr.io/${OWNER}/docker-build-cache:${FILE}", - ] -} - -target "push-cache-full" { - inherits = [ - "settings", - "cache", - "full", - ] - tags = [ - "ghcr.io/${OWNER}/docker-build-cache:${FILE}-full", - ] -} - target "build-slim" { inherits = ["settings", "slim"] } @@ -148,9 +123,15 @@ target "build-full" { target "push-slim" { inherits = ["settings", "slim"] output = ["type=registry"] + cache-to = [ + "type=registry,ref=ghcr.io/${OWNER}/docker-build-cache:${FILE}-full,mode=max,image-manifest=true,ignore-error=true", + ] } target "push-full" { inherits = ["settings", "full"] output = ["type=registry"] + cache-to = [ + "type=registry,ref=ghcr.io/${OWNER}/docker-build-cache:${FILE}-full,mode=max,image-manifest=true,ignore-error=true", + ] } -- GitLab