Spaces:
Sleeping
Sleeping
File size: 1,038 Bytes
a0f27fa 430d0f8 a0f27fa 8b98d83 a0f27fa 430d0f8 a0f27fa 430d0f8 a0f27fa 430d0f8 a0f27fa | 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 | FROM python:3.12-slim
WORKDIR /app
# Install dependencies (cached layer)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Create non-root user (UID 1000 — HF Spaces default)
RUN useradd -m -u 1000 -s /bin/bash appuser
# Copy source
COPY src/ src/
COPY data/seed_papers.json data/seed_papers.json
COPY data/demo-data.json data/demo-data.json
COPY data/demo-config.yaml data/demo-config.yaml
COPY entrypoint.sh .
RUN chmod +x entrypoint.sh
# Create data directories with correct ownership
# /app/data for local Docker Compose, /data for HF Spaces persistent storage
RUN mkdir -p data/weeks /data && chown -R appuser:appuser /app /data
USER appuser
# Default port for HF Spaces; docker-compose overrides to 8888 via PORT env var
ENV PORT=7860
EXPOSE 7860
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=15s \
CMD python -c "import os; import urllib.request; urllib.request.urlopen(f'http://localhost:{os.environ.get(\"PORT\", 7860)}/api/status')"
ENTRYPOINT ["./entrypoint.sh"]
|