Spaces:
Sleeping
Sleeping
File size: 1,131 Bytes
44131b7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | FROM python:3.11-slim
# System deps for GDAL/geopandas
RUN apt-get update && apt-get install -y --no-install-recommends \
libgdal-dev \
gdal-bin \
libgeos-dev \
libproj-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install Python deps
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy application files
COPY data_pipeline.py .
COPY dashboard_helpers.py .
COPY app.ipynb .
# Pre-download databases so it's baked into the image
RUN python -c "import leafmap; \
leafmap.download_file( \
'https://opengeos.org/data/duckdb/nyc_data.db.zip', \
unzip=True, \
overwrite=True \
)"
RUN python data_pipeline.py
# Expose the port HF Spaces expects
EXPOSE 7860
# Force Jupyter to trust the notebook so widgets can execute JS
RUN jupyter trust app.ipynb
# Launch Voila with relaxed iframe security and gridstack template
CMD ["voila", "app.ipynb", \
"--port=7860", \
"--no-browser", \
"--Voila.ip=0.0.0.0", \
"--Voila.tornado_settings={'headers':{'Content-Security-Policy':'frame-ancestors *'}}", \
"--template=gridstack"] |