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='*'"]