Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/apisix_push_docker_hub.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
50 changes: 28 additions & 22 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions debian/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,23 @@
# limitations under the License.
#

FROM debian:bullseye-slim
FROM debian:bookworm-slim

ARG APISIX_VERSION=3.16.0

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 \
Expand Down
Loading