differance-engine / Dockerfile
graziul's picture
feat: collapsible expansion, canonical pages, citations
6b6915c verified
Raw
History Blame Contribute Delete
1.03 kB
FROM python:3.12-slim
WORKDIR /app
# Python deps (sqlite3 is stdlib — no pip package needed)
COPY site/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy pipeline and data (cache-bust on each deploy)
ARG CACHE_BUST=20260816-1527
COPY pipeline/ ./pipeline/
RUN mkdir -p ./data
# Copy site (Astro static build)
COPY site/ ./site/
# Build Astro static site if dist/ doesn't exist
# (build-essential is for better-sqlite3 native Node addon compilation)
RUN if [ ! -d site/dist ]; then \
apt-get update && \
apt-get install -y --no-install-recommends build-essential curl && \
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs && \
cd site && npm install && npm run build && cd .. && \
apt-get remove -y build-essential nodejs && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*; \
fi
# Copy Space entry point
COPY space_app.py ./app.py
EXPOSE 7860
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]