FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app ./app
# Não roda como root dentro do container — reduz o estrago de uma
# eventual RCE (mesmo sem vulnerabilidade conhecida hoje, é uma
# mitigação de baixo custo e sem efeito colateral aqui, já que a app não
# precisa gravar nada no filesystem além de escutar a porta 8000, que não
# é privilegiada).
RUN useradd --no-create-home --shell /usr/sbin/nologin painel
USER painel
EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
