Spaces:
Sleeping
Sleeping
| # syntax=docker/dockerfile:1 | |
| # Base image (lightweight Python 3.11) | |
| FROM python:3.11-slim | |
| # Set working directory | |
| WORKDIR /app | |
| # EXPLICATION : Sous-étape 3 - création dossier logs pour persistance (évite erreurs permissions) | |
| RUN mkdir -p /app/logs | |
| # Install system dependencies required by LightGBM (OpenMP) | |
| RUN apt-get update && apt-get install -y --no-install-recommends libgomp1 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Copy dependency manifests first for better caching | |
| COPY pyproject.toml uv.lock ./ | |
| # Install uv and sync dependencies (without installing the project) | |
| RUN pip install --no-cache-dir uv \ | |
| && uv sync --frozen --no-install-project | |
| # Copy application code | |
| COPY . ./ | |
| # Install project (and any remaining dependencies) | |
| RUN uv sync --frozen | |
| # Expose Gradio default port | |
| EXPOSE 7860 | |
| # Set PORT for compatibility | |
| ENV PORT=7860 | |
| # Ensure Python output is not buffered (logs visible immediately) | |
| ENV PYTHONUNBUFFERED=1 | |
| # EXPLICATION : Volume pour logs (bonne pratique Docker - permet docker cp ou mount externe) | |
| VOLUME ["/app/logs"] | |
| # Launch the Gradio app | |
| CMD ["uv", "run", "app.py"] | |