Researcher / Dockerfile
amarck's picture
Add demo mode, fix scoring, improve preferences
8b98d83
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"]