Repository navigation
build: passe l'image sur Docker Hardened Images (Python 3.14) - #19
Open
Mandrak-Kimigo wants to merge 1 commit into
Open
Mandrak-Kimigo wants to merge 1 commit into
Mandrak-Kimigo wants to merge 1 commit into
Conversation
L'image de base devient dhi.io/python:3.14-debian13 pour réduire la surface d'attaque (pas de shell ni de gestionnaire de paquets au runtime, quasi aucune CVE, SBOM et provenance signés) et diviser la taille de l'image par deux (196 Mo contre 469 Mo). - Dockerfile en deux stages : dépendances installées avec uv dans la variante -dev, seul le venv est copié dans l'image runtime. L'utilisateur nonroot (uid 65532) de DHI remplace l'utilisateur 10001 créé à la main ; les certificats CA sont fournis par l'image. - CI GitHub et GitLab : login sur dhi.io avec DOCKERHUB_USERNAME / DOCKERHUB_TOKEN (pull authentifié obligatoire), en plus du registre de publication. - Job ruff GitLab aligné sur Python 3.14. - CONTRIBUTING : docker login dhi.io requis pour builder en local ; section Sécurité corrigée (HTTP_VERIFY_TLS vaut true par défaut) ; ligne vide avant une liste (MD032). Testé en local : build, démarrage, login Keycloak complet. Signed-off-by: Mandrak-Kimigo <amaury.cormier@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pourquoi
L'image actuelle (
python:3.12-slim) embarque un shell,aptet une bonne partie de Debian, que tokenlab n'utilise pas au runtime. Pour un outil qui manipule des tokens OIDC, c'est de la surface d'attaque et des CVE remontées par les scanners pour rien.Les Docker Hardened Images (
dhi.io/python:3.14-debian13) apportent :nonroot, uid 65532) ;Le passage à Python 3.14 se fait sans changer
uv.lock: tous les paquets compilés ont déjà un wheelcp314manylinux.Changements
Dockerfile: build en deux stages.build(dhi.io/python:3.14-debian13-dev) :uv sync --frozen --no-dev, avecUV_PYTHON_DOWNLOADS=neverpour que le venv utilise le Python de l'image, etUV_COMPILE_BYTECODE=1parce que l'image runtime est en lecture seule pournonroot.runtime(dhi.io/python:3.14-debian13) : on y copie seulement.venvetapp/.apt-get install ca-certificates(les certificats CA sont fournis par l'image) et la création de l'utilisateur 10001 sont supprimés.HTTP_VERIFY_TLS=truereste figé au build, comme avant..github/workflows/build-image.yml: nouveau stepLogin to DHI, qui utilise les secrets d'organisationDOCKERHUB_USERNAME/DOCKERHUB_TOKEN(le pull depuisdhi.ioexige une authentification)..gitlab-ci.yml: kaniko reçoit les identifiantsdhi.ioen plus de ceux du registre GitLab ; le jobruffpasse surpython:3.14-slim.CONTRIBUTING.md:docker login dhi.iopour builder en local ;HTTP_VERIFY_TLSvauttruepar défaut ;Tests en local
docker buildOK.env,GET /→ 200sh: executable file not found)host.docker.internalPoints d'attention
kubectl exec ... shpossible, utiliserkubectl debugavec un conteneur éphémère.🤖 Generated with Claude Code