reverse-prompter / Dockerfile
dejanseo's picture
Update Dockerfile
1a15098 verified
Raw History Blame Contribute Delete
1.32 kB
FROM python:3.11-slim
# 1. Install OS build dependencies and curl
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
curl \
git \
&& rm -rf /var/lib/apt/lists/*
# 2. Set up user 1000 (required by Hugging Face Spaces)
RUN useradd -m -u 1000 user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH \
PYTHONUNBUFFERED=1 \
HF_HOME=/home/user/.cache/huggingface
WORKDIR $HOME/app
# 3. Install Python dependencies as user
COPY --chown=user:user requirements.txt .
USER user
RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
pip install --no-cache-dir -r requirements.txt
# 4. Pre-download model & tokenizer into image layer so startup is instant
RUN python -c "from transformers import AutoModelForCausalLM, AutoTokenizer; \
AutoModelForCausalLM.from_pretrained('dejanseo/reverse-prompter'); \
AutoTokenizer.from_pretrained('dejanseo/reverse-prompter')"
# 5. Copy application source
COPY --chown=user:user . .
EXPOSE 7860
# 6. Streamlit startup flags configured for HF Spaces iframe and port 7860
CMD ["streamlit", "run", "src/streamlit_app.py", \
"--server.port=7860", \
"--server.address=0.0.0.0", \
"--server.headless=true", \
"--server.enableCORS=false", \
"--server.enableXsrfProtection=false"]