From 65f1ee6a874aea6f5161a9706bcc9922ddcc4122 Mon Sep 17 00:00:00 2001 From: Shreemaan Abhishek Date: Mon, 13 Apr 2026 13:04:21 +0800 Subject: [PATCH] chore: update debian base image to bookworm (#620) --- .github/workflows/apisix_push_docker_hub.yaml | 7 ++- Makefile | 50 +++++++++++-------- debian/Dockerfile | 8 +-- 3 files changed, 38 insertions(+), 27 deletions(-) diff --git a/.github/workflows/apisix_push_docker_hub.yaml b/.github/workflows/apisix_push_docker_hub.yaml index cfda8808..47b41348 100644 --- a/.github/workflows/apisix_push_docker_hub.yaml +++ b/.github/workflows/apisix_push_docker_hub.yaml @@ -67,7 +67,12 @@ jobs: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: push apisix:latest image to docker hub + - name: Build multiarch image + if: ${{ !startsWith(github.ref_name, 'release/apisix') }} + run: | + make build-multiarch-on-${{ matrix.platform }} + + - name: Push apisix:latest image to Docker Hub if: ${{ startsWith(github.ref_name, 'release/apisix') && (matrix.platform == 'ubuntu') }} run: | make push-multiarch-on-latest diff --git a/Makefile b/Makefile index 8ea1a614..5c299fd6 100644 --- a/Makefile +++ b/Makefile @@ -134,41 +134,47 @@ push-multiarch-dev-on-debian: @$(call func_echo_success_status, "$@ -> [ Done ]") -### push-multiarch-on-ubuntu : Push apache/apisix:xx-ubuntu image -.PHONY: push-multiarch-on-ubuntu -push-multiarch-on-ubuntu: +# $(1): platform, $(2): extra buildx flags (e.g. --push) +define func_multiarch_build @$(call func_echo_status, "$@ -> [ Start ]") - cp ./utils/*.sh ubuntu/ - $(ENV_DOCKER) buildx build --network=host --push \ - -t $(ENV_APISIX_IMAGE_TAG_NAME)-ubuntu \ + $(if $(filter-out redhat,$(1)),cp ./utils/*.sh $(1)/) + $(ENV_DOCKER) buildx build --network=host $(2) \ + -t $(ENV_APISIX_IMAGE_TAG_NAME)-$(1) \ --platform linux/amd64,linux/arm64 \ - -f ./ubuntu/Dockerfile ubuntu - rm -f ubuntu/*.sh + -f ./$(1)/Dockerfile $(1) + $(if $(filter-out redhat,$(1)),rm -f $(1)/*.sh) @$(call func_echo_success_status, "$@ -> [ Done ]") +endef + +### build-multiarch-on-ubuntu : Build apache/apisix:xx-ubuntu multiarch image +.PHONY: build-multiarch-on-ubuntu +build-multiarch-on-ubuntu: + $(call func_multiarch_build,ubuntu,) + +### push-multiarch-on-ubuntu : Push apache/apisix:xx-ubuntu image +.PHONY: push-multiarch-on-ubuntu +push-multiarch-on-ubuntu: + $(call func_multiarch_build,ubuntu,--push) +### build-multiarch-on-debian : Build apache/apisix:xx-debian multiarch image +.PHONY: build-multiarch-on-debian +build-multiarch-on-debian: + $(call func_multiarch_build,debian,) ### push-multiarch-on-debian : Push apache/apisix:xx-debian image .PHONY: push-multiarch-on-debian push-multiarch-on-debian: - @$(call func_echo_status, "$@ -> [ Start ]") - cp ./utils/*.sh debian/ - $(ENV_DOCKER) buildx build --network=host --push \ - -t $(ENV_APISIX_IMAGE_TAG_NAME)-debian \ - --platform linux/amd64,linux/arm64 \ - -f ./debian/Dockerfile debian - rm -f debian/*.sh - @$(call func_echo_success_status, "$@ -> [ Done ]") + $(call func_multiarch_build,debian,--push) +### build-multiarch-on-redhat : Build apache/apisix:xx-redhat multiarch image +.PHONY: build-multiarch-on-redhat +build-multiarch-on-redhat: + $(call func_multiarch_build,redhat,) ### push-multiarch-on-redhat : Push apache/apisix:xx-redhat image .PHONY: push-multiarch-on-redhat push-multiarch-on-redhat: - @$(call func_echo_status, "$@ -> [ Start ]") - $(ENV_DOCKER) buildx build --network=host --push \ - -t $(ENV_APISIX_IMAGE_TAG_NAME)-redhat \ - --platform linux/amd64,linux/arm64 \ - -f ./redhat/Dockerfile redhat - @$(call func_echo_success_status, "$@ -> [ Done ]") + $(call func_multiarch_build,redhat,--push) ### push-multiarch-on-latest : Push apache/apisix:latest image .PHONY: push-multiarch-on-latest diff --git a/debian/Dockerfile b/debian/Dockerfile index 330c8b0f..c88fa517 100644 --- a/debian/Dockerfile +++ b/debian/Dockerfile @@ -15,7 +15,7 @@ # limitations under the License. # -FROM debian:bullseye-slim +FROM debian:bookworm-slim ARG APISIX_VERSION=3.16.0 @@ -23,15 +23,15 @@ RUN set -ex; \ arch=$(dpkg --print-architecture); \ apt update; \ apt-get -y install --no-install-recommends wget gnupg ca-certificates curl;\ - codename=`grep -Po 'VERSION="[0-9]+ \(\K[^)]+' /etc/os-release`; \ + codename="debian12"; \ case "${arch}" in \ amd64) \ wget -O - https://repos.apiseven.com/pubkey.gpg | apt-key add - \ - && echo "deb https://repos.apiseven.com/packages/debian $codename main" | tee /etc/apt/sources.list.d/apisix.list \ + && echo "deb https://repos.apiseven.com/packages/debian debian12 main" | tee /etc/apt/sources.list.d/apisix.list \ ;; \ arm64) \ wget -O - https://repos.apiseven.com/pubkey.gpg | apt-key add - \ - && echo "deb https://repos.apiseven.com/packages/arm64/debian $codename main" | tee /etc/apt/sources.list.d/apisix.list \ + && echo "deb https://repos.apiseven.com/packages/arm64/debian debian12 main" | tee /etc/apt/sources.list.d/apisix.list \ ;; \ esac; \ apt update \