gitshark

Clone repository

git clone https://gitshark.de/git/workaround/Gitshark.git
git clone git@gitshark.de:workaround/Gitshark.git

← Commits

๐Ÿ‘ท (ci): Build the JVM image multi-arch for amd64 and arm64

e29fcbd6117980868115962d95c361bf90dd99ff ยท Michael Hainz ยท 2026-07-09T14:08:25Z

Changes

3 files changed, +19 -4

MODIFY .github/workflows/jvm.yml +12 -0
diff --git a/.github/workflows/jvm.yml b/.github/workflows/jvm.yml
index 26f1660..2886f3b 100644
--- a/.github/workflows/jvm.yml
+++ b/.github/workflows/jvm.yml
@@ -41,6 +41,15 @@
41 41 registry: ghcr.io
42 42 username: ${{ github.actor }}
43 43 password: ${{ secrets.GITHUB_TOKEN }}
44 + # QEMU + Buildx enable cross-building the arm64 variant on the amd64 runner.
45 + # The JVM image only copies the (architecture-independent) quarkus-app jars, so no
46 + # per-architecture compilation is needed; the multi-arch base image does the rest.
47 + - name: Set up QEMU
48 + uses: docker/setup-qemu-action@v3
49 + with:
50 + platforms: arm64
51 + - name: Set up Docker Buildx
52 + uses: docker/setup-buildx-action@v3
44 53 - name: Extract image metadata
45 54 id: meta
46 55 uses: docker/metadata-action@v6
@@ -54,6 +63,9 @@
54 63 with:
55 64 context: .
56 65 file: src/main/docker/Dockerfile.jvm
66 + platforms: linux/amd64,linux/arm64
57 67 push: true
58 68 tags: ${{ steps.meta.outputs.tags }}
59 69 labels: ${{ steps.meta.outputs.labels }}
70 + cache-from: type=gha
71 + cache-to: type=gha,mode=max
MODIFY README.md +2 -4
diff --git a/README.md b/README.md
index a949a66..90978ec 100644
--- a/README.md
+++ b/README.md
@@ -214,8 +214,6 @@
214 214 ## CI
215 215
216 216 - `.github/workflows/jvm.yml` โ€” JVM tests on every push/PR; on main, builds and pushes the
217 - JVM container image to GHCR.
217 + JVM container image to GHCR as a multi-arch manifest (linux/amd64 + linux/arm64, via
218 + Buildx/QEMU).
218 219 - `.github/workflows/native.yml` โ€” native build + integration tests on every push/PR.
219 -- `.github/workflows/mirror.yml` โ€” mirrors all branches and tags to
220 - `https://gitshark.ha1nz.de/git/miggi/GitShark.git` on every push to `main` (force + prune;
221 - auth via `GITSHARK_TOKEN` repository secret holding a GitShark access token).
MODIFY docs/admins/getting-started.md +5 -0
diff --git a/docs/admins/getting-started.md b/docs/admins/getting-started.md
index 5309790..5e81621 100644
--- a/docs/admins/getting-started.md
+++ b/docs/admins/getting-started.md
@@ -39,6 +39,11 @@
39 39 Pin a specific release instead of `latest` for reproducible deploys (e.g.
40 40 `ghcr.io/workaround-org/git-shark:1.0.0`).
41 41
42 +The JVM image is published as a multi-arch manifest for **linux/amd64** and
43 +**linux/arm64** โ€” `docker pull` picks the right variant automatically, so it runs
44 +natively on x86 servers and ARM hosts (Raspberry Pi 4/5, AWS Graviton, Apple
45 +Silicon) alike.
46 +
42 47 The image listens on **8080** (HTTP) and, once configured, **2222** (SSH). It runs as
43 48 UID `185` and reads all production settings from environment variables.
44 49

Keyboard shortcuts

?Show this help
g hGo home
EscClose dialog