Skip to content

ci(docker): build multi-arch images (amd64 + arm64)#5648

Open
DavertMik wants to merge 1 commit into
4.xfrom
feature/docker-arm64
Open

ci(docker): build multi-arch images (amd64 + arm64)#5648
DavertMik wants to merge 1 commit into
4.xfrom
feature/docker-arm64

Conversation

@DavertMik

Copy link
Copy Markdown
Contributor

Summary

Closes #5646 — the Docker Hub image (codeceptjs/codeceptjs) currently ships amd64 only. This PR makes the published image multi-arch so it works natively on ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi, etc.).

Changes

  • .github/workflows/docker.yml
    • Add docker/setup-qemu-action@v3 to enable arm64 emulation during the build.
    • Pass platforms: linux/amd64,linux/arm64 to build-push-action, producing a single multi-arch manifest. docker pull codeceptjs/codeceptjs then resolves to the right architecture automatically.
  • Dockerfile
    • Bump base image mcr.microsoft.com/playwright:v1.55.0-noblev1.61.0-noble (latest). This release ships an arm64 manifest and matches the project's playwright ^1.59.0 dependency, so the image's bundled browsers line up with the installed package.

Why this is sufficient

  • Base image v1.61.0-noble publishes both amd64 and arm64 manifests (verified via docker manifest inspect).
  • The Dockerfile has no arch-specific downloads; the apt packages (libgtk2.0-0, libxtst6, xvfb, …) exist for both arches on Ubuntu Noble.
  • docker/entrypoint and docker/run.sh are plain shell, architecture-agnostic.

Notes / tradeoffs

  • The arm64 image is built via QEMU emulation, which is slower (the npm install step in particular). If build time becomes a problem, a follow-up could split the build across native runners (ubuntu-22.04 + ubuntu-22.04-arm) and merge manifests with docker buildx imagetools.
  • The base image is pinned to an exact version, so it won't drift — it should be bumped alongside future Playwright upgrades.

🤖 Generated with Claude Code

…base

Closes #5646

- Add QEMU setup and build linux/amd64,linux/arm64 in docker.yml so the
  Docker Hub image resolves to a multi-arch manifest
- Bump base image to mcr.microsoft.com/playwright:v1.61.0-noble (latest,
  ships arm64) to match the project's playwright dependency

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docker images for ARM?

1 participant