39 lines
1.4 KiB
Docker
39 lines
1.4 KiB
Docker
# Partir d'une image Python 3.9 standard et légère
|
|
FROM python:3.9-slim-bookworm
|
|
|
|
# Définir le répertoire de travail dans le conteneur
|
|
WORKDIR /app
|
|
|
|
# ---- OPTIMISATION DU CACHE DOCKER ----
|
|
# 1. Installer les dépendances système et de build
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
python3-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# 2. Copier UNIQUEMENT le fichier requirements.txt
|
|
COPY requirements.txt .
|
|
|
|
# 3. Installer les dépendances Python. Cette couche sera mise en cache
|
|
# et ne sera pas ré-exécutée si requirements.txt ne change pas.
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# 4. Télécharger et installer les modèles de langue pour spaCy
|
|
RUN python -m spacy download fr_core_news_sm
|
|
# CORRECTION : Ajout du téléchargement du modèle anglais
|
|
RUN python -m spacy download en_core_web_lg
|
|
|
|
# 5. Copier le reste du code de l'application
|
|
# Si vous ne changez que le code de l'app, le pip install ne sera pas refait.
|
|
COPY . /app/
|
|
# ---- FIN DE L'OPTIMISATION ----
|
|
|
|
# Définir la variable d'environnement pour que Presidio trouve notre fichier de configuration
|
|
COPY ./conf/default.yaml /usr/bin/presidio-analyzer/presidio_analyzer/conf/default.yaml
|
|
|
|
# Exposer le port que Gunicorn va utiliser
|
|
EXPOSE 5001
|
|
|
|
# Commande finale pour lancer l'application avec Gunicorn
|
|
CMD ["gunicorn", "-w", "1", "-b", "0.0.0.0:5001", "app:app"]
|