Офіційні PHP-образи мають варіанти на Alpine Linux (php:8.5-fpm-alpine) і на Debian (php:8.5-fpm на повному Debian, а для інших технологій часто ще й -slim).
Alpine:
- маленький розмір - базова система кілька мегабайтів, образ PHP - десятки мегабайтів замість сотень;
- менше пакетів - менше потенційних вразливостей у сканері;
- але інша стандартна бібліотека C - musl замість glibc.
Наслідки musl, через які обирають Debian:
- бінарні пакети під glibc не працюють: готові збірки деяких розширень, інструментів (наприклад, частина бінарників для Node.js-модулів, браузери для генерації PDF) - доводиться збирати з вихідного коду, і збирання стає довшим;
- відмінності в поведінці: робота з DNS (наприклад, обробка
searchуresolv.conf), локалі, деякі функції форматування - інколи дають несподівані помилки, які важко відтворити; - продуктивність: у частині навантажень (виділення пам'яті, багатопотоковість) musl помітно повільніший за glibc;
- налагодження: менше звичних інструментів, інша пакетна система (
apkзамістьapt).
Debian (slim):
- стандартний glibc - сумісність з більшістю бінарних пакетів і розширень;
- більший розмір (але з multi-stage збиранням і чисткою - прийнятний);
- передбачувана поведінка, звична для більшості серверних систем.
Як обрати:
- Alpine - коли важливий розмір і застосунок не залежить від нативних бінарників під glibc; добре перевірена конфігурація;
- Debian - коли потрібні нестандартні розширення, бінарні інструменти (wkhtmltopdf, Chromium, драйвери баз даних), коли команда стикалася з «дивними» помилками на musl;
- distroless / мінімальні образи - для скомпільованих застосунків (Go); для PHP менш практичні.
Незалежно від вибору:
- фіксувати версію: не
php:8.5-fpm-alpine, а конкретну мінорну версію чи дайджест - інакше нове збирання тихо підтягне іншу версію PHP або системних бібліотек; - оновлювати свідомо й регулярно - заради виправлень безпеки;
- не порівнювати лише розмір: різниця у 100 МБ рідко важлива, а година налагодження проблеми musl - помітна.
Докладніше в документації: Найкращі практики: вибір базового образу