Spaces:
Running
Running
FROM python:3.10-slim | |
# 1) Installer TeX full, GhostScript, Node.js & ImageMagick | |
RUN apt-get update && \ | |
apt-get install -y --no-install-recommends \ | |
texlive-full \ | |
ghostscript \ | |
libgl1 \ | |
nodejs npm \ | |
imagemagick && \ | |
ln -sf /usr/bin/convert /usr/bin/magick && \ | |
pdflatex --version && convert --version && node -v && \ | |
# patch de la policy pour autoriser PDF -> image | |
sed -i "s@<policy domain=\"coder\" rights=\"none\" pattern=\"PDF\" />@<policy domain=\"coder\" rights=\"read|write\" pattern=\"PDF\" />@" \ | |
/etc/ImageMagick-6/policy.xml && \ | |
apt-get clean && rm -rf /var/lib/apt/lists/* | |
# 2) Copier et installer les dépendances Python | |
WORKDIR /code | |
COPY requirements.txt /code/ | |
RUN pip install --no-cache-dir --upgrade pip && \ | |
pip install --no-cache-dir -r requirements.txt | |
# 3) Passage en utilisateur non-root | |
RUN useradd -m -u 1000 user | |
USER user | |
ENV HOME=/home/user \ | |
PATH=/home/user/.local/bin:$PATH | |
# 4) Copier l’application et exposer le port | |
WORKDIR $HOME/app | |
COPY --chown=user . $HOME/app | |
# 5) Lancement Streamlit sans file watcher | |
CMD ["streamlit", "run", "app.py", \ | |
"--server.port=7860", \ | |
"--server.address=0.0.0.0", \ | |
"--server.runOnSave=false"] |