# ─── Imagem base: Python 3.11 slim ────────────────────────────────────────── FROM python:3.11-slim # Metadata LABEL maintainer="dashboard-ftth-franca" LABEL description="Dashboard INFRAESTRUTURA FTTH FRANÇA — Plotly Dash + Flask" # Evitar prompts interativos durante apt ENV DEBIAN_FRONTEND=noninteractive ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 # ─── Dependências de sistema para geopandas/shapely ───────────────────────── RUN apt-get update && apt-get install -y --no-install-recommends \ gdal-bin \ libgdal-dev \ libgeos-dev \ libproj-dev \ libspatialindex-dev \ build-essential \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # ─── Directório de trabalho dentro do container ────────────────────────────── WORKDIR /app # ─── Instalar dependências Python ──────────────────────────────────────────── COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # ─── Copiar código e dados ─────────────────────────────────────────────────── COPY dashboard_v2.py . COPY data_processed/ ./data_processed/ COPY data_reports/ ./data_reports/ # ─── Porta exposta (Hugging Face Spaces requer 7860) ────────────────── EXPOSE 7860 # ─── Variáveis de ambiente para produção ───────────────────────────────────── ENV DASH_DEBUG=false # ─── Ponto de entrada ──────────────────────────────────────────────────────── CMD ["python", "dashboard_v2.py"]