Files
notytex/Dockerfile

43 lines
1.2 KiB
Docker

# Dockerfile pour Notytex - Système de Gestion Scolaire
FROM python:3.11-slim-bookworm
# Variables d'environnement pour uv et Flask
ENV UV_COMPILE_BYTECODE=1
ENV UV_LINK_MODE=copy
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV FLASK_APP=app
ENV FLASK_ENV=production
# Installation d'uv depuis l'image officielle
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
# Création d'un utilisateur non-root
RUN adduser --disabled-password --gecos '' --shell /bin/bash notytex
# Définition du répertoire de travail
WORKDIR /app
RUN chown -R notytex:notytex /app
USER notytex
# Copie des fichiers de configuration
COPY --chown=notytex:notytex pyproject.toml uv.lock ./
# Installation des dépendances avec cache mount
RUN --mount=type=cache,target=/home/notytex/.cache/uv \
uv sync --frozen --no-dev --no-install-project
# Copie du code source
COPY --chown=notytex:notytex . .
# Installation du projet dans l'environnement virtuel
RUN uv sync --frozen --no-dev
# Création des répertoires nécessaires (volumes seront montés)
RUN mkdir -p instance logs
# Exposition du port Flask
EXPOSE 5000
# Démarrage de l'application (stateless)
CMD ["uv", "run", "flask", "--app", "app", "run", "--host=0.0.0.0", "--port=5000"]