Spaces:
Sleeping
Sleeping
File size: 2,753 Bytes
558d330 d160fc8 558d330 d160fc8 558d330 d160fc8 558d330 d160fc8 558d330 d160fc8 558d330 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # ββ Base βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
FROM python:3.11-slim
# ββ System dependencies ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
libxml2-dev \
libxslt-dev \
zlib1g-dev \
curl \
&& rm -rf /var/lib/apt/lists/*
# ββ Create a non-root user (Required for Hugging Face Spaces) ββββββββββββββββββ
RUN useradd -m -u 1000 user
USER user
# ββ Setup environment ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
# Set the working directory to the user's home directory
WORKDIR $HOME/app
# ββ Install Python dependencies ββββββββββββββββββββββββββββββββββββββββββββββββ
# Copy requirements first to leverage Docker cache
COPY --chown=user web_app/requirements.txt ./requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# ββ Copy full application source βββββββββββββββββββββββββββββββββββββββββββββββ
COPY --chown=user . $HOME/app
# ββ Create writable directories ββββββββββββββββββββββββββββββββββββββββββββββββ
RUN mkdir -p outputs storage web_app/__pycache__
# ββ Streamlit config β disable telemetry, set port ββββββββββββββββββββββββββββ
RUN mkdir -p $HOME/.streamlit \
&& cp web_app/streamlit_config.toml $HOME/.streamlit/config.toml
# ββ HF Spaces: port 7860 ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
EXPOSE 7860
# ββ Launch Streamlit βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
CMD ["streamlit", "run", "web_app/app.py", \
"--server.port=7860", \
"--server.address=0.0.0.0", \
"--server.headless=true", \
"--browser.gatherUsageStats=false"]
|