FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    HOST=0.0.0.0 \
    PORT=8000

WORKDIR /app

# Dependências de sistema para OCR em português
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
       tesseract-ocr \
       tesseract-ocr-por \
    && rm -rf /var/lib/apt/lists/*

# Instala dependências Python primeiro para aproveitar cache de build
COPY requirements.txt ./

RUN pip install --upgrade pip \
    && pip install -r requirements.txt

# Copia o restante da aplicação
COPY . .

# Prepara diretórios persistentes e usuário sem privilégios
RUN mkdir -p /app/data /app/data/uploads \
    && useradd --system --uid 10001 --create-home \
       --home-dir /home/lernotafiscal lernotafiscal \
    && chown -R lernotafiscal:lernotafiscal /app

USER lernotafiscal

EXPOSE 8000

# APP_MODULE pode ser sobrescrito pelo Coolify/docker-compose.
# Padrão assumido: app.main:app
CMD ["sh", "-c", "uvicorn ${APP_MODULE:-app.main:app} --host ${HOST:-0.0.0.0} --port ${PORT:-8000} --proxy-headers --forwarded-allow-ips='*'"]
