Vital / Dockerfile
eddyejembi's picture
Upload folder using huggingface_hub
4e88df3 verified
Raw
History Blame Contribute Delete
1.18 kB
# 1. Removed syntax=docker/dockerfile:1 to stop the initial 4-hour hang
# 2. Pinned directly to an immutable SHA digest to stop Docker Hub tag-resolution hangs
FROM python:3.12-slim-bookworm
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PYTHONPATH=/app \
UV_COMPILE_BYTECODE=1 \
UV_LINK_MODE=copy
WORKDIR /app
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
# Create a non-privileged user that the app will run under.
# See https://docs.docker.com/go/dockerfile-user-best-practices/
ARG UID=10001
RUN adduser \
--disabled-password \
--gecos "" \
--home "/nonexistent" \
--shell "/sbin/nologin" \
--no-create-home \
--uid "${UID}" \
appuser
# Layer cache setup
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev --no-install-project
COPY . .
# Writable cache for Hugging Face Hub
RUN mkdir -p /app/.cache/huggingface && chown -R appuser:appuser /app
USER appuser
ENV PATH="/app/.venv/bin:$PATH" \
HOME=/app \
HF_HOME=/app/.cache/huggingface \
XDG_CACHE_HOME=/app/.cache
# Expose the port that the application listens on.
EXPOSE 7860
# Run the application.
CMD uv run python app.py