Spaces:
Running
Running
File size: 1,430 Bytes
c03d895 | 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 | FROM python:3.11-slim
# Git is required because requirements.txt installs
# noobpwnftw/python-chess directly from GitHub.
RUN apt-get update \
&& apt-get install -y --no-install-recommends git \
&& rm -rf /var/lib/apt/lists/*
# Run as a non-root user rather than the image's default root. UID 1000 has
# no special meaning to Render (it just needs to own /app below); it
# matches Hugging Face Docker Spaces' convention, so the same image also
# runs there.
RUN useradd -m -u 1000 user
WORKDIR /app
# Install Python dependencies first so Docker can cache this layer.
COPY --chown=user requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir --upgrade pip \
&& pip install --no-cache-dir -r /app/requirements.txt
# Copy the actual application.
COPY --chown=user . /app
USER user
ENV HOME=/home/user
ENV PATH=/home/user/.local/bin:$PATH
ENV PYTHONUNBUFFERED=1
# Purely informational -- config.py's PORT reads the platform's own PORT
# environment variable at runtime (falling back to 7860 only when it's
# unset) and that's the port actually bound, regardless of this EXPOSE
# value. Render assigns and injects PORT itself (see render.yaml /
# README.md "Deploying to Render"), so nothing needs to change here to
# match it; 7860 is the default for a local `docker run` with no PORT set,
# and for Hugging Face Docker Spaces, which expects 7860 specifically.
EXPOSE 7860
CMD ["python", "app.py"]
|