Financial2API / Dockerfile
Shivam4096's picture
Upload folder using huggingface_hub
d160fc8 verified
Raw History Blame Contribute Delete
2.75 kB
# ── 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"]