Blog / Article #131
Docker + PHP : Alpine ou Debian, le duel des images légères (et des choix qui grattent)

star

14 Septembre 2026
Docker + PHP : Alpine ou Debian

Choisir une base pour son image Docker PHP, c’est un peu comme choisir entre un vélo de course et un 4x4 pour traverser Paris : l’un est léger et rapide, l’autre est robuste et rassurant. Mais lequel mérite vraiment de finir dans votre Dockerfile ? Entre Alpine (le chouchou des minimalistes) et Debian (le vieux sage des conteneurs), le débat agite les équipes DevOps depuis des années. Si ca se trouve la bonne réponse n’a rien à voir avec les benchmarks que vous avez lus sur Reddit.

Alpine : le régime sec, y a rien la dedans.

Alpine Linux, c’est la promesse d’une image Docker ultra-légère, avec une empreinte mémoire si fine qu’on se demande si elle ne va pas s’envoler au premier coup de vent. Avec une taille de base d’à peine 5 Mo (contre 100 Mo pour Debian), elle fait rêver les adeptes du less is more. Sauf que, comme tout régime extrême, ça se paie.

Premier écueil : la compatibilité. Alpine utilise musl libc au lieu de la glibc standard, ce qui peut transformer l’installation de certaines extensions PHP en parcours du combattant. Vous voulez pdo_mysql ? Préparez-vous à compiler à la main ou à jouer aux devinettes avec les dépendances. Deuxième problème : les outils. bash n’est pas installé par défaut (remplacé par ash, un shell aussi convivial qu’un terminal des années 80), et des commandes comme apt sont remplacées par apk, dont la syntaxe donne envie de pleurer. Bref, Alpine, c’est bien… si vous aimez souffrir.

Côté sécurité, Alpine marque des points avec une surface d’attaque réduite (moins de paquets = moins de failles potentielles). Mais attention : une image minimaliste ne signifie pas une image sécurisée par défaut. Si vous oubliez de supprimer les outils de debug après installation, vous vous retrouvez avec un conteneur aussi vulnérable qu’un serveur Debian mal configuré. La légèreté n’excuse pas la négligence.

Debian : le confort douillet qui cache des kilos superflus

Debian, c’est le choix par défaut de la plupart des images officielles PHP. Pourquoi ? Parce que ça marche, tout simplement. Pas de surprises, pas de dépendances manquantes, pas de Segmentation fault à 3h du matin parce que votre extension PHP refuse de se lier à musl. Debian, c’est la stabilité, la compatibilité, et une expérience utilisateur qui ne donne pas envie de jeter son clavier par la fenêtre.

Oui, Debian est plus lourd. Oui, son image de base fait 100 Mo. Mais dans un monde où un node_modules pèse plus lourd qu’un éléphant, est-ce vraiment un problème ? La différence de taille entre une image Alpine et une image Debian bien optimisée (avec --no-install-recommends et un bon docker-slim) se compte en mégaoctets, pas en gigaoctets. Et ces quelques Mo supplémentaires vous évitent des heures de debug inutiles.

Autre avantage : Debian est partout. Les documentations, les tutoriels, les scripts d’installation… Tout est pensé pour Debian. Vous voulez installer composer ? Un apt install composer et c’est plié. Avec Alpine, vous devrez probablement ajouter une étape de compilation ou utiliser un dépôt tiers, avec tous les risques que cela comporte. Debian, c’est la tranquillité d’esprit, même si ça manque un peu de glamour.

Le verdict : Alpine pour les masos, Debian pour les pros (ou les flemmards)

Si vous travaillez sur un projet critique où chaque octet compte (un microservice en edge computing, par exemple), Alpine peut être un choix judicieux… à condition d’accepter de passer du temps à configurer et à debugger. Pour le reste, Debian reste le choix le plus raisonnable. La légèreté d’Alpine est un leurre : ce que vous gagnez en taille, vous le perdez en temps et en énergie.

Et puis, soyons honnêtes : dans 90% des cas, la taille de votre image Docker n’est pas le vrai problème. Le vrai problème, c’est le node_modules de 500 Mo que vous avez oublié de supprimer, ou les logs qui remplissent votre conteneur jusqu’à ce qu’il explose. Optimisez là où ça compte vraiment, pas là où c’est à la mode.

Pour finir, voici un exemple de Dockerfile optimisé pour Debian (parce que oui, on peut faire du léger avec Debian) :

FROM debian:bookworm-slim

# On évite les paquets inutiles
RUN apt-get update && apt-get install -y --no-install-recommends \
    php8.2-cli \
    php8.2-mysql \
    composer \
    && rm -rf /var/lib/apt/lists/*

# On copie uniquement ce qui est nécessaire
COPY . /app
WORKDIR /app

# On lance PHP en production
CMD ["php", "index.php"]

Avec ça, vous avez une image propre, fonctionnelle, et qui ne vous fera pas regretter d’avoir choisi Debian. Alpine, c’est bien pour les démos et les talks techniques. Pour la vraie vie, Debian reste le roi.

Publié le 14/09/2026 · 4 min de lecture Partager X LinkedIn

← Précédent Vba en 2026 : le langage qui refuse de s’éteindre Suivant → Traefik + symfony : récupérer la vraie ip du visiteur sans se prendre un mur