Skip to content

perf: php-fpm + nginx sur Alpine (547MB -> 92MB)#87

Merged
mortifia merged 2 commits into
masterfrom
perf/web-fpm-nginx-alpine
Jul 15, 2026
Merged

perf: php-fpm + nginx sur Alpine (547MB -> 92MB)#87
mortifia merged 2 commits into
masterfrom
perf/web-fpm-nginx-alpine

Conversation

@mortifia

@mortifia mortifia commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Résumé

Le site n'utilise ni mod_rewrite (aucune RewriteRule/RewriteCond dans le repo) ni aucune autre fonctionnalité Apache — rien ne justifiait de rester sur une base Debian complète (php:8.4-apache) pour servir quelques fichiers PHP et assets statiques. Passage à php:8.4-fpm-alpine + nginx (installé via apk).

  • curl déjà compilé statiquement dans php:8.4-fpm-alpine (vérifié, comme dans la variante -apache utilisée jusqu'ici).
  • php/templates/ reste bloqué via un location nginx équivalent au <Directory> Apache existant.
  • Deux process dans le conteneur : php-fpm -D (arrière-plan) puis nginx -g 'daemon off;' (premier plan, PID 1).

Mesures

Taille de l'image : 547MB -> 92MB (-83%)

Test plan

  • Build --no-cache réussi sur le VPS
  • Conteneur démarré réellement (variables d'env Discord factices) : / répond 200 (index.php exécuté via fastcgi)
  • css/master.css répond 200 (fichier statique)
  • php/templates/ répond 403 (bloqué, comme avant)
  • php/get_authorization_code.php répond 302 (exécution PHP réelle, pas d'erreur 500)
  • curl_init() disponible dans le conteneur

Closes #88

mortifia added 2 commits July 15, 2026 05:06
…pache)

curl est compilé statiquement dans l'image de base php:8.4-apache
(php -m | grep curl le confirme sans rien installer). Le
apt-get install libcurl4-openssl-dev + docker-php-ext-install curl
recompilait une extension déjà disponible, pour rien. a2enmod ne nécessite
lui-même aucun paquet apt, donc plus aucun apt-get dans ce Dockerfile.

Testé sur le VPS : curl_init() fonctionne toujours, a2query -m rewrite
toujours actif dans l'image finale. Taille : 547MB -> 509MB.
…92MB)

Le site n'utilise ni mod_rewrite (aucune RewriteRule/RewriteCond dans le
repo) ni aucune autre fonctionnalité Apache — rien ne justifiait de rester
sur une base Debian complète avec Apache pour servir 4 fichiers PHP et
quelques assets statiques.

curl est déjà compilé statiquement dans php:8.4-fpm-alpine (comme dans la
variante -apache utilisée jusqu'ici). php/templates/ reste bloqué, via un
location nginx équivalent au <Directory> Apache existant.

Testé sur le VPS (build --no-cache + conteneur démarré réellement) :
- / répond 200 (index.php exécuté via fastcgi)
- css/master.css répond 200 (fichier statique)
- php/templates/ répond 403 (bloqué, comme avant)
- php/get_authorization_code.php répond 302 (exécution PHP réelle, pas
  d'erreur 500)
- curl_init() disponible dans le conteneur

Taille de l'image : 547MB -> 92MB (-83%).
@mortifia
mortifia merged commit ad9b280 into master Jul 15, 2026
6 checks passed
@mortifia
mortifia deleted the perf/web-fpm-nginx-alpine branch July 15, 2026 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Réduire la taille de l'image Docker web (presentation.unionrolistes.fr)

1 participant