nycmobility / Dockerfile
arjavrawal
uploading files
44131b7
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"]