Spaces:
Running
Running
# Use Python 3.12 as the base image | |
FROM python:3.12 | |
# Set working directory | |
WORKDIR /code | |
# Create a non-root user and set permissions | |
RUN useradd -m -u 1000 user && \ | |
mkdir -p /home/user/.cache/huggingface && \ | |
chown -R user:user /home/user/.cache /code | |
# Set environment variables | |
ENV HOME=/home/user \ | |
HF_HOME=/home/user/.cache/huggingface \ | |
PATH=/home/user/.local/bin:$PATH | |
# Switch to the new user | |
USER user | |
# Copy requirements and install dependencies | |
COPY --chown=user:user ./requirements.txt /code/requirements.txt | |
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt | |
# Copy application files | |
COPY --chown=user:user . /code/app | |
# Hugging Face Spaces does NOT support --mount=type=secret. | |
# Instead, access HF_TOKEN via environment variables at runtime. | |
CMD huggingface-cli login --token "$HF_TOKEN" --add-to-git-credential && \ | |
streamlit run app.py \ | |
--server.headless true \ | |
--server.enableCORS false \ | |
--server.enableXsrfProtection false \ | |
--server.fileWatcherType none |