This commit is contained in:
Waloshi6
2026-01-27 17:34:16 +01:00
parent 4c3bd195b7
commit c8204829e9
237 changed files with 3542 additions and 1737 deletions

66
src/app/Dockerfile Normal file
View File

@@ -0,0 +1,66 @@
# ==========================
# STAGE 1 : Construction
# ==========================
FROM python:3.11-slim AS builder
WORKDIR /app
# Installer les dépendances système
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
gcc \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*
# Créer un environnement virtuel
RUN python -m venv /venv
ENV PATH="/venv/bin:$PATH"
# Installer les dépendances
COPY src/app/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# ==========================
# STAGE 2 : Production
# ==========================
FROM python:3.11-slim AS runtime
# Définir le répertoire de travail
WORKDIR /app
# Installer les bibliothèques système
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq5 \
&& rm -rf /var/lib/apt/lists/*
# 🔥 Installe curl ici
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
# Créer un utilisateur non-root
RUN useradd -m -u 1000 devopsuser
# Copier l'environnement virtuel
COPY --from=builder /venv /venv
ENV PATH="/venv/bin:$PATH"
# Copier le code
COPY src/app /app
# Changer les droits
RUN chown -R devopsuser:devopsuser /app
USER devopsuser
# Variables d'environnement
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV ENV=production
ENV HOSTNAME=devops-container
ENV PYTHONPATH="${PYTHONPATH}:/app"
EXPOSE 8000
# Lancer l'application
CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--no-access-log"]