Spaces:
Running
Running
AuthorBot commited on
Commit ·
2a4848e
1
Parent(s): 772f852
Fix Dockerfile: use flat app/ structure, remove backend/ paths
Browse files- Dockerfile +11 -6
Dockerfile
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
# ============================================================
|
| 2 |
-
# AuthorBot RAG API —
|
| 3 |
-
#
|
|
|
|
| 4 |
# ============================================================
|
| 5 |
FROM python:3.11-slim AS builder
|
| 6 |
|
|
@@ -14,7 +15,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
| 14 |
|
| 15 |
WORKDIR /app
|
| 16 |
|
| 17 |
-
COPY
|
| 18 |
RUN pip install --no-cache-dir --upgrade pip && \
|
| 19 |
pip install --no-cache-dir -r requirements.txt
|
| 20 |
|
|
@@ -39,15 +40,19 @@ ENV UPLOAD_STORAGE_PATH=/data/uploads
|
|
| 39 |
COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
|
| 40 |
COPY --from=builder /usr/local/bin /usr/local/bin
|
| 41 |
|
| 42 |
-
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
-
RUN mkdir -p /
|
| 45 |
printf 'dir /data/redis\nbind 127.0.0.1\nport 6379\ndaemonize yes\nlogfile /dev/null\n' > /app/redis-hf.conf
|
| 46 |
|
| 47 |
RUN adduser --disabled-password --gecos "" --uid 1000 appuser && \
|
| 48 |
chown -R appuser:appuser /app /data
|
| 49 |
USER appuser
|
| 50 |
|
|
|
|
| 51 |
RUN python -c "from sentence_transformers import CrossEncoder; CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')" || true
|
| 52 |
RUN python -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')" || true
|
| 53 |
|
|
@@ -58,4 +63,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=180s --retries=5 \
|
|
| 58 |
|
| 59 |
EXPOSE 7860
|
| 60 |
|
| 61 |
-
CMD ["sh", "-c", "mkdir -p /data/chroma /data/uploads /data/redis && redis-server /app/redis-hf.conf && sleep 1 &&
|
|
|
|
| 1 |
# ============================================================
|
| 2 |
+
# AuthorBot RAG API — HuggingFace Spaces Dockerfile
|
| 3 |
+
# Entry: app.py → app/main.py (FastAPI)
|
| 4 |
+
# Routes: /api/chat/{slug} · /api/admin/{slug} · /api/super · /health
|
| 5 |
# ============================================================
|
| 6 |
FROM python:3.11-slim AS builder
|
| 7 |
|
|
|
|
| 15 |
|
| 16 |
WORKDIR /app
|
| 17 |
|
| 18 |
+
COPY requirements.txt .
|
| 19 |
RUN pip install --no-cache-dir --upgrade pip && \
|
| 20 |
pip install --no-cache-dir -r requirements.txt
|
| 21 |
|
|
|
|
| 40 |
COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
|
| 41 |
COPY --from=builder /usr/local/bin /usr/local/bin
|
| 42 |
|
| 43 |
+
# Copy entire flat project (app/, static/, app.py, requirements.txt)
|
| 44 |
+
COPY app/ ./app/
|
| 45 |
+
COPY static/ ./static/
|
| 46 |
+
COPY app.py .
|
| 47 |
|
| 48 |
+
RUN mkdir -p /data/chroma /data/uploads /data/sessions /data/redis && \
|
| 49 |
printf 'dir /data/redis\nbind 127.0.0.1\nport 6379\ndaemonize yes\nlogfile /dev/null\n' > /app/redis-hf.conf
|
| 50 |
|
| 51 |
RUN adduser --disabled-password --gecos "" --uid 1000 appuser && \
|
| 52 |
chown -R appuser:appuser /app /data
|
| 53 |
USER appuser
|
| 54 |
|
| 55 |
+
# Pre-warm ML models (non-fatal if network unavailable at build time)
|
| 56 |
RUN python -c "from sentence_transformers import CrossEncoder; CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')" || true
|
| 57 |
RUN python -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')" || true
|
| 58 |
|
|
|
|
| 63 |
|
| 64 |
EXPOSE 7860
|
| 65 |
|
| 66 |
+
CMD ["sh", "-c", "mkdir -p /data/chroma /data/uploads /data/sessions /data/redis && redis-server /app/redis-hf.conf && sleep 1 && uvicorn app.main:app --host 0.0.0.0 --port 7860 --workers 1 --loop uvloop --http httptools"]
|