Atualizado

This commit is contained in:
2026-03-27 00:25:27 -03:00
parent 464f9d4426
commit 6af9b62b5e

View File

@@ -1,50 +1,38 @@
# Dockerfile para Monitor Evolution API + Webhook FROM python:3.11-slim
# Deploy otimizado para Coolify
WORKDIR /app
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1 \
# Definir diretório de trabalho PYTHONUNBUFFERED=1 \
WORKDIR /app STREAMLIT_SERVER_PORT=3000 \
STREAMLIT_SERVER_ADDRESS=0.0.0.0 \
# Variáveis de ambiente para Python STREAMLIT_SERVER_HEADLESS=true \
ENV PYTHONDONTWRITEBYTECODE=1 STREAMLIT_BROWSER_GATHER_USAGE_STATS=false \
ENV PYTHONUNBUFFERED=1 TIMEZONE=America/Sao_Paulo \
TZ=America/Sao_Paulo
# Variáveis de ambiente para Streamlit
ENV STREAMLIT_SERVER_PORT=3000 RUN apt-get update && apt-get install -y --no-install-recommends \
ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0 curl \
ENV STREAMLIT_SERVER_HEADLESS=true tzdata \
ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false && rm -rf /var/lib/apt/lists/*
# Timezone padrão (pode ser sobrescrito via variável de ambiente no Coolify) RUN python -m pip install --no-cache-dir --upgrade pip
ENV TIMEZONE=America/Sao_Paulo
ENV TZ=America/Sao_Paulo # Copia apenas o código necessário da aplicação.
COPY app.py monitor_logic.py ./
# Instalar dependências do sistema
RUN apt-get update && apt-get install -y --no-install-recommends \ # Dependências fixadas diretamente para evitar falha de shell com operadores >=.
curl \ RUN python -m pip install --no-cache-dir \
&& rm -rf /var/lib/apt/lists/* "streamlit>=1.28.0" \
"requests>=2.31.0" \
# Atualizar pip "python-dotenv>=1.0.0" \
RUN pip install --no-cache-dir --upgrade pip "APScheduler>=3.10.0" \
"pandas>=2.0.0" \
# Copiar arquivos da aplicação "pytz>=2023.3"
COPY app.py monitor_logic.py ./
EXPOSE 3000
# Copiar requirements.txt se existir, caso contrário instalar dependências diretamente
COPY requirements.txt* ./ HEALTHCHECK --interval=30s --timeout=10s --start-period=20s --retries=3 \
RUN if [ -f requirements.txt ]; then \ CMD curl --fail "http://localhost:${STREAMLIT_SERVER_PORT}/_stcore/health" || exit 1
pip install --no-cache-dir -r requirements.txt; \
else \ 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}"]
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"]