fix(workflow): use runners with different architectures instead of QEMU#12322
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR replaces QEMU-based multi-arch builds with native architecture runners to speed up the apisix:dev image build and reuse previous images before "Test APISIX".
- Install runtime libyaml via
apt-getinstead of copying from build stage - Update etcd service image version in Docker Compose
- Refactor Makefile targets for architecture-specific builds, tags, and manifest merging
- Update GitHub Actions to use a matrix of native runners and split build/push and manifest merge steps
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| docker/debian-dev/Dockerfile | Install libyaml via apt and remove old manual copy |
| docker/compose/docker-compose-master.yaml | Bump etcd image to 3.6 and remove explicit user: root |
| Makefile | Add TARGETARCH build arg, separate push-on-debian-dev and merge-tags |
| .github/workflows/push-dev-image-on-commit.yml | Use matrix runners for amd64/arm64, remove QEMU steps, split jobs |
Comments suppressed due to low confidence (3)
docker/compose/docker-compose-master.yaml:37
- Removing the explicit
user: rootmay cause permission issues with the default user inbitnami/etcd:3.6. Consider reinstating the requiredusersetting or validating file ownership.
image: bitnami/etcd:3.6
.github/workflows/push-dev-image-on-commit.yml:63
- The
build-test-pushjob runsmake push-on-debian-devwithout first logging into Docker Hub. Add adocker/login-actionstep before the push to ensure authentication.
make push-on-debian-dev
Makefile:519
- [nitpick] Using
docker manifestrequires the CLI experimental feature. EnsureDOCKER_CLI_EXPERIMENTAL=enabledis set or switch to adocker buildx–based manifest workflow to avoid errors on some environments.
$(ENV_DOCKER) manifest create $(IMAGE_NAME):dev \
…v-image-on-commit
|
This is much faster than the previous method, so please review it as soon as possible.
|
|
@membphis ping |




Description
Depend on #12328, #12329
What:
This PR changed the original method of using qemu to build in runners with different architectures.
How:
ref docker/buildx#574 (comment)
Why:
This can reuse the image built before
Test APISIX, and significantly speeds up the build of theapisix:devimage because it's built on native arm64 or amd64.It also enables simple test step
Test APISIXthat were performed only in amd64 for arm64 image.Which issue(s) this PR fixes:
Fixes #
Checklist