Skip to content

Switch runtime image from Debian to Alpine Linux#19

Merged
Kaiohz merged 1 commit into
mainfrom
BRIC-18/multiplexed-content-stream
May 6, 2026
Merged

Switch runtime image from Debian to Alpine Linux#19
Kaiohz merged 1 commit into
mainfrom
BRIC-18/multiplexed-content-stream

Conversation

@Kaiohz
Copy link
Copy Markdown
Contributor

@Kaiohz Kaiohz commented May 6, 2026

Replace the python:3.11-slim-bookworm base image with python:3.11-alpine
to reduce image size and minimize CVE exposure. Update package manager commands (apk instead of apt-get), user creation syntax (adduser instead of useradd), and clean up redundant :$PYTHONPATH in the environment variable.

Replace the `python:3.11-slim-bookworm` base image with
`python:3.11-alpine`
to reduce image size and minimize CVE exposure. Update package manager
commands (`apk` instead of `apt-get`), user creation syntax (`adduser`
instead of `useradd`), and clean up redundant `:$PYTHONPATH` in the
environment variable.
@Kaiohz Kaiohz merged commit 540376a into main May 6, 2026
1 check passed
@Kaiohz
Copy link
Copy Markdown
Contributor Author

Kaiohz commented May 6, 2026

🔍 Code Review: Switch to Alpine Linux

📊 Score: 8/10


✅ Points positifs

  1. Réduction de la surface d attaque

    • Alpine a beaucoup moins de packages installés par défaut → moins de CVEs potentiels
    • Image plus légère (~50MB vs ~150MB)
  2. Migration correcte des commandes système

    • apk update && apk upgrade
    • adduser -D -u 1000 appuser
    • Cleanup du cache Alpine correct
  3. Nettoyage du PYTHONPATH

    • Bonne correction: $PYTHONPATH était vide au build, la forme simplifiée PYTHONPATH=/app est plus propre
  4. CI passe ✅ Les tests unitaires passent sur la nouvelle image


⚠️ Points d attention

  1. Compatibilité musl libc

    • Alpine utilise musl libc au lieu de glibc
    • Dépendances comme cryptography>=46.0.5 et asyncpg>=0.30.0 peuvent nécessiter:
      • Des dépendances de compilation (build-base, libffi-dev, openssl-dev)
      • Plus de temps de build (wheels à compiler vs pré-compilées)
  2. Stage builder non modifié

    • Le builder utilise toujours python:3.11-slim-bookworm
    • Ce n est pas bloquant (le venv est copié), mais pour cohérence on pourrait aussi utiliser Alpine

📝 Suggestions

# Optionnel: Si des erreurs de compilation surviennent
RUN apk add --no-cache build-base libffi-dev openssl-dev postgresql-dev

🎯 Verdict

À merger une fois la CD validée. Les changements sont corrects et bien structurés. Le passage à Alpine est une bonne pratique pour réduire la surface d attaque, mais il faudra surveiller:

  • Le temps de build Docker
  • D éventuelles erreurs de compilation au runtime

Si tout tourne correctement en staging, c est good to go! 🚀

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.

1 participant