From 21d51bf016950035104f8ec4091d10db020b1ee3 Mon Sep 17 00:00:00 2001 From: Nacim Date: Thu, 12 Jun 2025 00:21:42 +0200 Subject: [PATCH] Update Dockerfile.analyzer --- Dockerfile.analyzer | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/Dockerfile.analyzer b/Dockerfile.analyzer index 0f2fd9f..b4b6c31 100644 --- a/Dockerfile.analyzer +++ b/Dockerfile.analyzer @@ -3,23 +3,34 @@ # Utiliser l'image depuis le registre de Microsoft (MCR) FROM mcr.microsoft.com/presidio-analyzer:latest -# Changer l'utilisateur pour 'root' afin d'avoir les permissions d'installer des paquets -USER root +# Définir l'URL et la version du modèle pour une maintenance facile +ARG SPACY_MODEL_URL="https://github.com/explosion/spacy-models/releases/download/fr_core_news_sm-3.7.0/fr_core_news_sm-3.7.0-py3-none-any.whl" +ARG SPACY_MODEL_NAME="fr_core_news_sm" -# Mettre à jour les paquets et installer les outils de construction essentiels -# - build-essential : contient des outils comme gcc, make, etc. -# - python3-dev : contient les fichiers d'en-tête pour compiler des extensions Python. -# --no-install-recommends est une bonne pratique pour garder l'image légère. -RUN apt-get update && apt-get install -y --no-install-recommends \ - build-essential \ - python3-dev \ - && rm -rf /var/lib/apt/lists/* +# Utiliser pip pour installer directement le modèle depuis son URL. +# pip est souvent plus verbeux et donnera de meilleures erreurs. +RUN pip install ${SPACY_MODEL_URL} -# Revenir à l'utilisateur par défaut de l'image (bonne pratique de sécurité) -# L'utilisateur par défaut dans beaucoup d'images est 'app' ou un non-root. -# Si cela cause un problème, on peut essayer de l'enlever, mais c'est mieux avec. -# On va commenter cette ligne pour l'instant pour plus de simplicité, on la remettra si besoin. -# USER 1001 +# Créer un lien symbolique pour que spaCy puisse trouver le modèle sous son nom court. +# C'est une étape que "spacy download" fait automatiquement. +# La bibliothèque spaCy est dans /usr/local/lib/pythonX.Y/site-packages +# Le nom du répertoire python peut varier, mais cette commande devrait le trouver. +RUN python -c "import spacy; spacy.cli.link('${SPACY_MODEL_URL##*/}', '${SPACY_MODEL_NAME}', force=True, model_path=spacy.util.get_package_path('${SPACY_MODEL_NAME}'))" -# Maintenant, installer le modèle de langue français de spaCy -RUN python -m spacy download fr_core_news_sm +# L'étape ci-dessus est complexe. Essayons une version plus simple en premier. +# La plupart du temps, un simple "pip install" suffit. +# Commençons donc par la version la plus simple : + +# --- DEBUT DU FICHIER A TESTER --- +# Fichier : Dockerfile.analyzer (Version simplifiée pour le test) + +# Utiliser l'image depuis le registre de Microsoft (MCR) +FROM mcr.microsoft.com/presidio-analyzer:latest + +# Définir l'URL du modèle à installer +ARG SPACY_MODEL_URL="https://github.com/explosion/spacy-models/releases/download/fr_core_news_sm-3.7.0/fr_core_news_sm-3.7.0-py3-none-any.whl" + +# Simplement utiliser pip pour installer le modèle. C'est l'étape la plus importante. +# On ajoute --no-cache-dir pour éviter les problèmes de cache dans Docker. +RUN pip install --no-cache-dir ${SPACY_MODEL_URL} +# --- FIN DU FICHIER A TESTER ---