From 6af9b62b5e2fc3a5fb362aac6c8fec70f74434be Mon Sep 17 00:00:00 2001 From: wander Date: Fri, 27 Mar 2026 00:25:27 -0300 Subject: [PATCH] Atualizado --- Dockerfile | 88 +++++++++++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 50 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4c98250..7d6efe7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,50 +1,38 @@ -# Dockerfile para Monitor Evolution API + Webhook -# Deploy otimizado para Coolify - -FROM python:3.11-slim - -# Definir diretório de trabalho -WORKDIR /app - -# Variáveis de ambiente para Python -ENV PYTHONDONTWRITEBYTECODE=1 -ENV PYTHONUNBUFFERED=1 - -# Variáveis de ambiente para Streamlit -ENV STREAMLIT_SERVER_PORT=3000 -ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0 -ENV STREAMLIT_SERVER_HEADLESS=true -ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false - -# Timezone padrão (pode ser sobrescrito via variável de ambiente no Coolify) -ENV TIMEZONE=America/Sao_Paulo -ENV TZ=America/Sao_Paulo - -# Instalar dependências do sistema -RUN apt-get update && apt-get install -y --no-install-recommends \ - curl \ - && rm -rf /var/lib/apt/lists/* - -# Atualizar pip -RUN pip install --no-cache-dir --upgrade pip - -# Copiar arquivos da aplicação -COPY app.py monitor_logic.py ./ - -# Copiar requirements.txt se existir, caso contrário instalar dependências diretamente -COPY requirements.txt* ./ -RUN if [ -f requirements.txt ]; then \ - pip install --no-cache-dir -r requirements.txt; \ - else \ - pip install --no-cache-dir streamlit>=1.28.0 requests>=2.31.0 python-dotenv>=1.0.0 apscheduler>=3.10.0 pandas>=2.0.0; \ - fi - -# Expor porta do Streamlit (padrão Coolify) -EXPOSE 3000 - -# Healthcheck para Coolify -HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ - CMD curl --fail http://localhost:3000/_stcore/health || exit 1 - -# Comando para iniciar a aplicação na porta 3000 -CMD ["streamlit", "run", "app.py", "--server.port=3000", "--server.address=0.0.0.0"] +FROM python:3.11-slim + +WORKDIR /app + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + STREAMLIT_SERVER_PORT=3000 \ + STREAMLIT_SERVER_ADDRESS=0.0.0.0 \ + STREAMLIT_SERVER_HEADLESS=true \ + STREAMLIT_BROWSER_GATHER_USAGE_STATS=false \ + TIMEZONE=America/Sao_Paulo \ + TZ=America/Sao_Paulo + +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl \ + tzdata \ + && rm -rf /var/lib/apt/lists/* + +RUN python -m pip install --no-cache-dir --upgrade pip + +# Copia apenas o código necessário da aplicação. +COPY app.py monitor_logic.py ./ + +# Dependências fixadas diretamente para evitar falha de shell com operadores >=. +RUN python -m pip install --no-cache-dir \ + "streamlit>=1.28.0" \ + "requests>=2.31.0" \ + "python-dotenv>=1.0.0" \ + "APScheduler>=3.10.0" \ + "pandas>=2.0.0" \ + "pytz>=2023.3" + +EXPOSE 3000 + +HEALTHCHECK --interval=30s --timeout=10s --start-period=20s --retries=3 \ + CMD curl --fail "http://localhost:${STREAMLIT_SERVER_PORT}/_stcore/health" || exit 1 + +CMD ["sh", "-c", "streamlit run app.py --server.port=${STREAMLIT_SERVER_PORT} --server.address=${STREAMLIT_SERVER_ADDRESS} --server.headless=${STREAMLIT_SERVER_HEADLESS} --browser.gatherUsageStats=${STREAMLIT_BROWSER_GATHER_USAGE_STATS}"]