| # Use a imagem oficial Python slim | |
| FROM python:3.11-slim | |
| # Diretório de trabalho dentro do container | |
| WORKDIR /app | |
| # Instalar dependências do sistema necessárias para WeasyPrint e matplotlib | |
| RUN apt-get update && apt-get install -y \ | |
| libcairo2 \ | |
| libpango-1.0-0 \ | |
| libpangoft2-1.0-0 \ | |
| libgdk-pixbuf2.0-0 \ | |
| libffi-dev \ | |
| shared-mime-info \ | |
| fonts-liberation \ | |
| libxml2 \ | |
| libxslt1.1 \ | |
| libjpeg62-turbo \ | |
| libssl-dev \ | |
| build-essential \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Copiar arquivo requirements e instalar pacotes Python | |
| COPY requirements.txt /app/requirements.txt | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Copiar código da aplicação para dentro do container | |
| COPY . /app | |
| # Expor a porta que o Flask usa | |
| EXPOSE 5000 | |
| # Definir a variável de ambiente para matplotlib cache, evitando problemas de permissão | |
| ENV MPLCONFIGDIR=/tmp/matplotlib-config | |
| # Comando para rodar a aplicação Flask | |
| CMD ["python", "app.py"] | |