# Usa uma imagem oficial do Python como base FROM python:3.9 # Cria um utilizador não-root para segurança RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" # Define o diretório de trabalho dentro do container WORKDIR /app # Copia o ficheiro de requisitos e instala as dependências PRIMEIRO # Isto aproveita o cache do Docker e acelera builds futuras COPY --chown=user ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt # Copia todos os outros ficheiros do projeto (app.py, pasta templates, etc.) COPY --chown=user . /app # Expõe a porta que a aplicação vai usar EXPOSE 7860 # O comando para iniciar a aplicação EM PRODUÇÃO usando Gunicorn # Gunicorn é um servidor WSGI robusto, ideal para Flask. CMD ["gunicorn", "--workers", "4", "--bind", "0.0.0.0:7860", "app:app"]