Construire une image Docker multi-architecture (linux/amd64 et linux/arm64) pour que l'application fonctionne sur :
- ✅ Serveurs x86_64 (Intel/AMD)
- ✅ Raspberry Pi (ARM64)
- ✅ Mac M1/M2/M3 (ARM64)
- ✅ Construit sur les serveurs GitHub (pas de problème local)
- ✅ Supporte nativement le multi-arch
- ✅ Gratuit pour les dépôts publics
- ✅ Historique des builds
Le workflow se déclenche automatiquement quand vous poussez des modifications sur main :
git add .
git commit -m "Update application"
git push origin main- Allez sur GitHub : https://github.com/pierrenedelec/ng-doc-pro
- Cliquez sur l'onglet "Actions"
- Sélectionnez "Build and Push Multi-Arch Docker Image" dans la liste
- Cliquez sur "Run workflow" → "Run workflow"
- Une fois le workflow terminé, cliquez sur le run
- Regardez le Summary qui affiche :
image: ghcr.io/pierrenedelec/ng-doc-pro:latest@sha256:xxxxx
- Copiez cette ligne et mettez-la à jour dans :
/pierrenedelec-umbrel-store/pierrenedelec-ng-doc/docker-compose.yml
Ou récupérez-le en ligne de commande :
docker buildx imagetools inspect ghcr.io/pierrenedelec/ng-doc-pro:latest | grep "Digest:"Le workflow utilise GITHUB_TOKEN qui est automatiquement fourni par GitHub Actions.
Assurez-vous que :
- Votre dépôt est public OU
- Vous avez activé les GitHub Packages pour les dépôts privés
- Allez sur https://github.com/pierrenedelec?tab=packages
- Trouvez ng-doc-pro
- Cliquez sur "Package settings"
- Descendez à "Danger Zone"
- Assurez-vous que le package est public
Le workflow fait :
- Checkout du code
- Setup QEMU pour l'émulation multi-arch
- Setup Docker Buildx pour les builds avancés
- Login à GitHub Container Registry
- Build pour linux/amd64 et linux/arm64
- Push vers
ghcr.io/pierrenedelec/ng-doc-pro:latest - Affiche le digest SHA256 dans le summary
Vérifiez que dans Settings → Actions → General :
- Workflow permissions est sur "Read and write permissions"
Vérifiez que le package est public :
docker pull ghcr.io/pierrenedelec/ng-doc-pro:latestSi ça échoue, rendez le package public dans les settings GitHub.
- Onglet Actions
- Cliquez sur le workflow run
- Cliquez sur "build-and-push"
- Développez les étapes pour voir les logs détaillés
Une fois construite, vérifiez les architectures supportées :
docker buildx imagetools inspect ghcr.io/pierrenedelec/ng-doc-pro:latestVous devriez voir :
Platform: linux/amd64
Platform: linux/arm64
Une fois l'image construite avec le nouveau SHA256 :
cd /path/to/pierrenedelec-umbrel-store/pierrenedelec-ng-doc
# Mettre à jour docker-compose.yml avec le nouveau SHA256
# Puis sur Umbrel :
./scripts/app update pierrenedelec-ng-docVotre image sera désormais compatible avec toutes les architectures, y compris votre serveur Umbrel x86_64 !