Skip to content

#2393 add multi-arch-image support#2394

Open
KugelLibelle wants to merge 1 commit intoit-at-m:devfrom
KugelLibelle:2393-multi-arch-images
Open

#2393 add multi-arch-image support#2394
KugelLibelle wants to merge 1 commit intoit-at-m:devfrom
KugelLibelle:2393-multi-arch-images

Conversation

@KugelLibelle
Copy link
Contributor

@KugelLibelle KugelLibelle commented Feb 11, 2026

Beschreibung:

Dieser PR fügt Multi-Arch-Unterstützung (AMD64 und ARM64) für alle Container-Images hinzu.

Änderungen:

  • Alle drei callable Workflows für Container-Image-Erstellung wurden angepasst:
    • callable-create-github-container-image.yml
    • callable-create-github-container-image_java21.yml
    • callable-create-github-container-image-frontend.yml
  • QEMU und Docker Buildx Setup hinzugefügt
  • Platform-Parameter auf linux/amd64,linux/arm64 gesetzt

Bei der Umsetzung wurde sich an der offiziellen Dokumentation orientiert.
Die Commits zum Pinnen der Workflow-Versionen wurden aus den jeweils neuen Versions-Tags geholt: QEMU und Buildx

Es wurde im Vorfeld überprüft, dass alle Base-Images die in den Dockerfiles genutzt werden, Multi-Arch-Images sind:

  • JDK17: registry.access.redhat.com/ubi8/openjdk-17:latest@sha256:a08703024a431617209636f80c3ccc172c7ea414187679f03b05d0dd81516bbf
  • JDK21: registry.access.redhat.com/ubi9/openjdk-21-runtime:1.24-2.1767878250@sha256:84a136ce036ebde3adc502c84c39f22bd4bf14ca387a3825cf3e1c7ae26c0942
  • NGINX: registry.access.redhat.com/ubi9/nginx-124:9.7-1767846424@sha256:a75f10d71969dd2451914df6539dea28f8e2c88506f691ea211768a0bd0746d1

-> Getestet werden kann das mit docker buildx imagetools inspect <image>:<tag>

Vorteile:

  • Deutlich bessere Performance auf ARM-Geräten
  • Stack-Startup-Zeit halbiert sich im Test auf ARM (von 2:30 Min auf ~60 Sek)
  • Geringere CPU-Auslastung im laufenden Betrieb
  • Keine Emulation mehr notwendig

Review-Hinweise:

Die Workflows bauen nun für beide Architekturen. Die Build-Zeit in der CI/CD-Pipeline wird sich dadurch etwas erhöhen, da beide Architekturen gebaut werden müssen.
Durch Caching könnte man die Build-Zeit bei Bedarf wieder reduzieren.

Ich habe einen der Workflows zum Testen in meinem Fork ausgeführt, das erstellte Image ist Multi-Arch:

Zum Testen: docker buildx imagetools inspect ghcr.io/kugellibelle/wahllokalsystem-wls-auth-service@sha256:d281f74b63719e2aaeb99632e674b9de02b13cfe852db127a5ae2d1e7bcdb9cf

Definition of Done (DoD):

Dokumentation

  • Doku aktualisiert
  • Texte auf Rechtschreibung und Grammatik geprüft

Referenzen:

Closes #2393

Summary by CodeRabbit

  • Chores

    • Enabled multi-architecture container image builds, now supporting both AMD64 and ARM64 platforms for broader hardware compatibility.
  • Documentation

    • Updated documentation to reflect the availability of multi-architecture container images.

…ontainer workflows and update documentation
@github-actions github-actions bot added the documentation Improvements or additions to documentation label Feb 11, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 11, 2026

📝 Walkthrough

Walkthrough

Three GitHub Actions workflow files are modified to enable multi-architecture Docker image builds by adding QEMU and Docker Buildx setup steps prior to the build process, and configuring the build-push-action to target both linux/amd64 and linux/arm64 platforms. Documentation is updated to reflect the new multi-arch image outputs in the artifact descriptions.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding multi-arch image support for container builds.
Description check ✅ Passed The description covers the main changes, implementation details, testing information, and documents a partial Definition of Done section, though DoD sections are incompletely marked.
Linked Issues check ✅ Passed The PR fully addresses the requirements from issue #2393 by implementing multi-arch support (linux/amd64 and linux/arm64) for all container images with QEMU and Docker Buildx setup.
Out of Scope Changes check ✅ Passed All changes are directly related to implementing multi-arch image support as specified in issue #2393; no unrelated modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
.github/workflows/callable-create-github-container-image.yml (1)

79-86: Consider adding build cache to offset the increased multi-arch build time.

The PR notes that build duration increases since both architectures are now built. The build-push-action supports GitHub Actions cache integration which can significantly reduce rebuild times.

♻️ Suggested cache configuration
       - name: Build and push image
         uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
         with:
           context: ./${{ inputs.service }}
           platforms: linux/amd64,linux/arm64
           push: true
           tags: ${{ steps.meta.outputs.tags }}
           labels: ${{ steps.meta.outputs.labels }}
+          cache-from: type=gha
+          cache-to: type=gha,mode=max

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multi-Arch-Unterstützung für Container-Images

1 participant