Formation Docker

Images multi-architecture (amd64 et arm64) avec buildx

Votre Mac est en arm64, votre VPS peut-être en amd64. Une seule image multi-architecture fonctionne partout.

Module 5 · Durcir et optimiser

Réservé aux abonnés

Objectif du chapitre

Le registre contient une image MonTour qui tourne nativement sur amd64 et arm64.

Prérequis : Durcir l’exécution (chapitre 21) : tag dk21 posé.

Votre portable est peut-être un Mac Apple Silicon (arm64), votre VPS un serveur Intel (amd64), et demain un VPS ARM moins cher. Une image Docker contient du code compilé pour un type de processeur. Dans ce chapitre, vous publiez MonTour sous un seul tag qui fonctionne partout.

Pourquoi « exec format error » arrive, et comment le reconnaître

Le scénario classique : vous construisez l’image sur un Mac M1, vous la poussez, le VPS la tire et le conteneur meurt immédiatement. Le processeur du VPS ne sait pas lire les binaires arm64 de l’image. Le message est court et trompeur :

docker compose logs app
# app-1  | exec /usr/local/bin/docker-entrypoint.sh: exec format error
docker inspect --format '{{.State.ExitCode}}' montour-app-1
# 1  (ou 255 selon le binaire)

La suite de cette leçon est réservée aux abonnés

Les 3 premières leçons de chaque formation sont gratuites. Débloquez la suite pour continuer.