Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion backend/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,19 @@ COPY pyproject.toml uv.lock ./
RUN uv sync --locked --no-dev


# --- Étape 2 : image d'exécution minimale, sans uv ni outils de build ---
# --- Étape 2 : image d'exécution minimale, sans installateur de paquets ---
FROM python:3.13-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PATH="/opt/venv/bin:$PATH"

# Les dépendances sont déjà installées dans /opt/venv par l'étape de construction.
# Retirer pip et le bootstrap ensurepip supprime aussi leurs bibliothèques embarquées,
# inutiles à l'exécution et auditées par Trivy (msgpack, setuptools, urllib3, etc.).
RUN python -m pip uninstall --yes pip \
&& python -c "import ensurepip, pathlib, shutil; shutil.rmtree(pathlib.Path(ensurepip.__file__).parent)"

# Utilisateur sans privilèges : le processus ne tourne jamais en root.
RUN useradd --uid 10001 --no-create-home --shell /usr/sbin/nologin app

Expand Down
5 changes: 5 additions & 0 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,11 @@ Docker Compose fournit l'environnement de développement local. La préproductio
reprennent les mêmes versions d'images avec leurs paramètres d'exploitation ; l'hébergement reste
à arrêter. Le fichier Compose actuel n'est pas la configuration de production complète.

L'installation des paquets reste dans l'étape de construction du Dockerfile. L'image d'exécution
reçoit le virtualenv de production ; `pip`, ses bibliothèques embarquées et le bootstrap
`ensurepip` sont retirés de cette image. Toute évolution des dépendances passe par une
reconstruction et les audits CI, sans installation de paquets dans un conteneur en service.

| Mesure | Application |
| --- | --- |
| Images minimales, utilisateur non-root | Dockerfile du backend (vérifié par Trivy) |
Expand Down
Loading