FROM python:3.12-slim RUN pip install --no-cache-dir fastapi "uvicorn[standard]" python-multipart gspread WORKDIR /app COPY . /app RUN mkdir -p /app/static/img && useradd -r -u 10001 app # Unprivileged: nothing here needs root, and the process is the one thing on # this box that takes unauthenticated input from the internet. USER 10001 CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]