advanced / Dockerfile
Alina Lozovskaya
Fix Dockerfile
e1a6c20
# Use a minimal Python image
FROM python:3.12.1-slim
# Install system dependencies required for UV and Git
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates git && \
rm -rf /var/lib/apt/lists/*
# Install UV (fast Python dependency manager)
RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
mv /root/.local/bin/uv /usr/local/bin/uv && chmod +x /usr/local/bin/uv
# Verify UV installation
RUN uv --version
# Create a non-root user for security
RUN useradd -m -u 1000 user
# Switch to the "user" user
USER user
# Set environment variables properly
ENV HOME=/home/user
ENV PATH=/home/user/.local/bin:$PATH
ENV XDG_CACHE_HOME=$HOME/.cache
ENV GRADIO_SERVER_NAME="0.0.0.0"
ENV SYSTEM=spaces
# Set working directory
WORKDIR $HOME/app
# Install dependencies
RUN --mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --frozen --no-cache --no-install-project
COPY --chown=user . $HOME/app
RUN uv sync --no-cache --frozen
EXPOSE 7860
# Run the application
CMD ["uv", "run", "python", "yourbench_space/app.py"]