From 7b2b58ce68403685f47311e6dfe088b4b31bfe79 Mon Sep 17 00:00:00 2001 From: Nick Schuch Date: Fri, 26 Sep 2025 10:15:15 +1000 Subject: [PATCH 1/2] Update make command --- Dockerfile | 3 +-- Makefile | 35 ++++++--------------------------- dev/Dockerfile | 3 +-- docker-bake.hcl | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 33 deletions(-) create mode 100644 docker-bake.hcl diff --git a/Dockerfile b/Dockerfile index c6f12af..eb3f9a6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ -ARG FROM_IMAGE -FROM ${FROM_IMAGE} +FROM base # Libuv 1.45.0 is affected by a kernel bug on certain kernels. # This leads to errors where Garden tool downloading errors with ETXTBSY diff --git a/Makefile b/Makefile index f9c74d1..4fcac89 100644 --- a/Makefile +++ b/Makefile @@ -1,34 +1,11 @@ #!/usr/bin/make -f -REGISTRY=skpr/node -ALPINE_VERSION=3.21 -NODE_VERSION=20 -ARCH=amd64 -VERSION_TAG=v3-latest +NODE_VERSION=22 +STREAM=latest -IMAGE=${REGISTRY}:${NODE_VERSION}-${VERSION_TAG} -IMAGE_DEV=${REGISTRY}:dev-${NODE_VERSION}-${VERSION_TAG} - -build: - # Building production image. - docker build --build-arg FROM_IMAGE=node:${NODE_VERSION}-alpine${ALPINE_VERSION} -t ${IMAGE}-${ARCH} . - # Building development image. - docker build --build-arg FROM_IMAGE=${IMAGE}-${ARCH} -t ${IMAGE_DEV}-${ARCH} dev - # Testing development image. - container-structure-test test --image ${IMAGE_DEV}-${ARCH} --config tests.yml - -push: - # Pushing production image. - docker push ${IMAGE}-${ARCH} - # Pushing development image. - docker push ${IMAGE_DEV}-${ARCH} - -manifest: - # Creating manifest for production image. - docker manifest create ${IMAGE} --amend ${IMAGE}-arm64 --amend ${IMAGE}-amd64 - docker manifest push ${IMAGE} - # Creating manifest for development image. - docker manifest create ${IMAGE_DEV} --amend ${IMAGE_DEV}-arm64 --amend ${IMAGE_DEV}-amd64 - docker manifest push ${IMAGE_DEV} +# Example build command for local development. +# See Github Action for multi-arch and multi-stream building. +bake: + NODE_VERSION=${NODE_VERSION} STREAM=${STREAM} docker buildx bake .PHONY: * diff --git a/dev/Dockerfile b/dev/Dockerfile index e219239..6d45731 100644 --- a/dev/Dockerfile +++ b/dev/Dockerfile @@ -1,5 +1,4 @@ -ARG FROM_IMAGE -FROM ${FROM_IMAGE} +FROM base USER root RUN apk add --no-cache \ diff --git a/docker-bake.hcl b/docker-bake.hcl new file mode 100644 index 0000000..bb3feb5 --- /dev/null +++ b/docker-bake.hcl @@ -0,0 +1,51 @@ +variable "NODE_VERSION" { + default = "22" +} + +variable "STREAM" { + default = "latest" +} + +variable "VERSION" { + default = "v3" +} + +group "default" { + targets = ["prod", "dev"] +} + +target "prod" { + context = "." + + contexts = { + base = "docker-image://node:${NODE_VERSION}-alpine3.21" + } + + platforms = [ + "linux/amd64", + "linux/arm64", + ] + + tags = [ + "docker.io/skpr/node:${NODE_VERSION}-${VERSION}-${STREAM}", + "ghrc.io/skpr/node:${NODE_VERSION}-${VERSION}-${STREAM}", + ] +} + +target "dev" { + context = "dev" + + contexts = { + base = "target:prod" + } + + platforms = [ + "linux/amd64", + "linux/arm64", + ] + + tags = [ + "docker.io/skpr/node:dev-${NODE_VERSION}-${VERSION}-${STREAM}", + "ghrc.io/skpr/node:dev-${NODE_VERSION}-${VERSION}-${STREAM}", + ] +} From 68f70f6d6a56e8c6ee010ec0d27aef29abe56aa6 Mon Sep 17 00:00:00 2001 From: Nick Schuch Date: Fri, 26 Sep 2025 10:18:35 +1000 Subject: [PATCH 2/2] nbake --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4fcac89..5cd27e7 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ STREAM=latest # Example build command for local development. # See Github Action for multi-arch and multi-stream building. -bake: +nbake: NODE_VERSION=${NODE_VERSION} STREAM=${STREAM} docker buildx bake .PHONY: *