[PR #993] [MERGED] fix(docker): enable multi-arch builds #1100

Closed
opened 2026-02-04 19:17:32 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/pelican-dev/panel/pull/993
Author: @QuintenQVD0
Created: 2/10/2025
Status: Merged
Merged: 2/16/2025
Merged by: @rmartinoscar

Base: mainHead: docker


📝 Commits (10+)

  • fcc99dd fix(docker): enable multi-arch builds
  • b325a67 Merge pull request #2 from QuintenQVD0/docker
  • 8235b17 Remove workflow_dispatch and add missing space
  • 235e113 There is no need for a matrix in the job build-and-push
  • 74d8510 Merge pull request #3 from QuintenQVD0/docker
  • fbcc6cf Update docker-publish.yml
  • f188f5b Only keep the artifacts for 7 days
  • 6c96020 Bump dockerfile labs version to 1.13
  • a5e1c2b Added a comment in the Dockerfile explaining how to self-build it
  • 37a3ecc Merge branch 'pelican-dev:main' into docker

📊 Changes

3 files changed (+108 additions, -23 deletions)

View changed files

📝 .github/workflows/docker-publish.yml (+83 -8)
📝 Dockerfile (+15 -15)
Dockerfile.base (+10 -0)

📄 Description

Changes & Explanation

  • Since building PHP on QEMU is very slow, we use build-php-base to create ARM64 and AMD64 base images on their respective native runners for faster builds.

  • These images are then exported as workflow artifacts.

  • In build-and-push, the two artifacts are downloaded, tagged, and pushed to a temporary registry (explained below).

For some reason, even though the images appear in docker images, they cannot be used directly (see issue). The only way to use them is to push them to a temporary registry running on port 5000. Because of this, Docker Buildx must be started in host mode, otherwise, it cannot access the registry on that port.

  • This change reduces the first uncached workflow run to about 10 minutes, and subsequent runs to approximately 3 minutes.

afbeelding


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/pelican-dev/panel/pull/993 **Author:** [@QuintenQVD0](https://github.com/QuintenQVD0) **Created:** 2/10/2025 **Status:** ✅ Merged **Merged:** 2/16/2025 **Merged by:** [@rmartinoscar](https://github.com/rmartinoscar) **Base:** `main` ← **Head:** `docker` --- ### 📝 Commits (10+) - [`fcc99dd`](https://github.com/pelican-dev/panel/commit/fcc99ddf987f29b31e593e6fde41a266a8e0a6bb) fix(docker): enable multi-arch builds - [`b325a67`](https://github.com/pelican-dev/panel/commit/b325a67d1c8ef4c47fabfe5ff87d1a03046a2eba) Merge pull request #2 from QuintenQVD0/docker - [`8235b17`](https://github.com/pelican-dev/panel/commit/8235b17247839b357626f3b94cff96d941f9b809) Remove workflow_dispatch and add missing space - [`235e113`](https://github.com/pelican-dev/panel/commit/235e1134bb76e30aa422785a855fe16f03a93112) There is no need for a matrix in the job build-and-push - [`74d8510`](https://github.com/pelican-dev/panel/commit/74d8510d34bc7c26fe8bc4ab82c3a6dcb8332106) Merge pull request #3 from QuintenQVD0/docker - [`fbcc6cf`](https://github.com/pelican-dev/panel/commit/fbcc6cf46360a746318cd2175441855c1f68eabc) Update docker-publish.yml - [`f188f5b`](https://github.com/pelican-dev/panel/commit/f188f5b5880269587b09c9839c6248b7e408a590) Only keep the artifacts for 7 days - [`6c96020`](https://github.com/pelican-dev/panel/commit/6c96020e7b9f0414c6107e0f5ba9d675bf78c61a) Bump dockerfile labs version to 1.13 - [`a5e1c2b`](https://github.com/pelican-dev/panel/commit/a5e1c2b5e7e43b58e9a048dadb1892a1251f2f65) Added a comment in the Dockerfile explaining how to self-build it - [`37a3ecc`](https://github.com/pelican-dev/panel/commit/37a3ecc4c0148e3a9ec398a19cf9a45de193c0eb) Merge branch 'pelican-dev:main' into docker ### 📊 Changes **3 files changed** (+108 additions, -23 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/docker-publish.yml` (+83 -8) 📝 `Dockerfile` (+15 -15) ➕ `Dockerfile.base` (+10 -0) </details> ### 📄 Description ## Changes & Explanation - Since building PHP on QEMU is very slow, we use `build-php-base` to create ARM64 and AMD64 base images on their respective native runners for faster builds. - These images are then exported as workflow artifacts. - In `build-and-push`, the two artifacts are downloaded, tagged, and pushed to a temporary registry (explained below). For some reason, even though the images appear in `docker images`, they cannot be used directly ([see issue](https://github.com/docker/build-push-action/issues/1176)). The only way to use them is to push them to a temporary registry running on port `5000`. Because of this, Docker Buildx must be started in `host` mode, otherwise, it cannot access the registry on that port. - This change reduces the first uncached workflow run to about **10 minutes**, and subsequent runs to approximately **3 minutes**. ![afbeelding](https://github.com/user-attachments/assets/6d40bb22-9b2d-4484-8f50-5bd45c5121c5) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-04 19:17:32 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/panel#1100