Skip to content

perf: Dockerfile urbot en multi-stage (607MB -> 211MB)#95

Merged
mortifia merged 1 commit into
mainfrom
perf/urbot-multistage-image
Jul 15, 2026
Merged

perf: Dockerfile urbot en multi-stage (607MB -> 211MB)#95
mortifia merged 1 commit into
mainfrom
perf/urbot-multistage-image

Conversation

@mortifia

@mortifia mortifia commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Résumé

  • Le Dockerfile urbot compilait lxml avec build-essential + libxml2-dev + libxslt1-dev + git, puis gardait tout ça (~440MB) dans l'image finale sans jamais s'en resservir.
  • Passage en multi-stage : un stage builder fait la compilation/pip install/clone, le stage final n'installe que les bibliothèques runtime (libxml2, libxslt1.1) et copie le résultat déjà construit.
  • Aucun changement de comportement : mêmes fichiers, mêmes imports, seule la manière de les construire change.

Mesures

  • Taille de l'image : 607MB -> 211MB (-65%)
  • Testé sur le VPS (build --no-cache) : import discord, requests, urpy, lxml.etree, et surtout from bot.urbot import main (le vrai point d'entrée) fonctionnent tous dans l'image finale.

Test plan

  • Build multi-stage réussi
  • Imports critiques vérifiés dans l'image finale (discord/requests/lxml/urpy/bot.urbot.main)
  • Redéploiement du conteneur urbot en prod (pas fait dans cette PR — à faire séparément, hors heures pour éviter une coupure du bot Discord)

Closes #96

…'image

Le layer build-essential + libxml2-dev + libxslt1-dev + git (~440MB) ne sert
qu'à compiler lxml, jamais à l'exécution. Un stage builder compile et
installe tout, le stage final ne garde que les .so runtime (libxml2,
libxslt1.1) et le résultat déjà construit.

Testé : import discord/requests/lxml/urpy/bot.urbot.main OK dans l'image
finale. Taille : 607MB -> 211MB.
@mortifia
mortifia merged commit cf9c9e8 into main Jul 15, 2026
5 checks passed
@mortifia
mortifia deleted the perf/urbot-multistage-image branch July 15, 2026 06:04
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.

Optimiser la taille de l'image Docker urbot

1 participant