VSL / Dockerfile
RaiSantos's picture
c3.5 t2n
1d5b69f
# Use Python 3.9 como base
FROM python:3.9-slim
# Instalar dependências do sistema
RUN apt-get update && apt-get install -y \
ffmpeg \
git \
wget \
imagemagick \
libmagick++-dev \
fonts-liberation \
fonts-open-sans \
&& rm -rf /var/lib/apt/lists/*
# Configurar ImageMagick para permitir operações com PDF
RUN sed -i 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' /etc/ImageMagick-6/policy.xml || true
# Definir diretório de trabalho
WORKDIR /app
# Copiar requirements primeiro para cache melhor
COPY requirements.txt .
# Instalar dependências Python
RUN pip install --no-cache-dir -r requirements.txt
# Copiar todos os arquivos do projeto
COPY . .
# Criar pastas necessárias
RUN mkdir -p uploads outputs templates temp \
&& mkdir -p /app/.cache/huggingface /app/.config/matplotlib \
&& chmod -R 777 /app
# Configurar ambiente
ENV PYTHONUNBUFFERED=1
ENV HF_HOME=/app/.cache/huggingface
ENV TRANSFORMERS_CACHE=/app/.cache/huggingface
ENV XDG_CACHE_HOME=/app/.cache
ENV MPLCONFIGDIR=/app/.config/matplotlib
ENV IMAGEMAGICK_BINARY=/usr/bin/convert
# Pré-baixar modelos para cache
RUN python -c "from transformers import AutoTokenizer, AutoModelForSeq2SeqLM; \
tokenizer = AutoTokenizer.from_pretrained('unicamp-dl/ptt5-base-portuguese-vocab'); \
model = AutoModelForSeq2SeqLM.from_pretrained('unicamp-dl/ptt5-base-portuguese-vocab')"
# Expor porta
EXPOSE 7860
# Comando para iniciar a aplicação
CMD ["python", "app.py"]