Files
GraphRAGAgent/backend/Dockerfile
T
admin 1d12cb574e fix: cleanup k8s configs, add deploy.sh, remove hardcoded secrets
- Add one-click deploy script (k8s/deploy.sh) for test + prod
- Add startupProbe to backend (60x10s = 10min grace for ML model loading)
- Add configmap.yaml and secret.yaml (envsubst from backend/.env)
- Fix image URLs: add registry.plfai.cn prefix
- Fix frontend: API base URL relative (/api/v1), login-required mode
- Remove hardcoded localhost references from frontend
- Clean broken kustomize overlays
- Add nodeAffinity for backend→k8smaster, frontend→plf-cvm/k8smaster
- Remove dead ReplicaSets and stale pods during deploy
2026-06-16 14:15:31 +08:00

58 lines
1.5 KiB
Docker

# ===== Stage 1: Build dependencies =====
FROM python:3.12-slim AS builder
WORKDIR /app
# Install uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
# Copy dependency manifests
COPY backend/pyproject.toml .
COPY backend/.env.example .
# Create venv and install deps
RUN uv venv /opt/venv && \
uv pip install --python /opt/venv/bin/python \
"fastapi>=0.104.0" \
"uvicorn[standard]>=0.24.0" \
"python-multipart>=0.0.6" \
"langextract[all]>=0.1.0" \
"langchain>=0.2.0" \
"langchain-openai>=0.1.0" \
"langgraph>=0.1.0" \
"networkx>=3.0" \
"python-dotenv>=1.0.0" \
"requests>=2.31.0" \
"beautifulsoup4>=4.12.0" \
"python-jose[cryptography]>=3.3.0"
# ===== Stage 2: Runtime =====
FROM python:3.12-slim
WORKDIR /app
# Copy venv from builder
COPY --from=builder /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
# Copy backend source
COPY backend/ ./backend/
# Copy mineru_mvp (used by indexing pipeline)
COPY mineru_mvp/ ./mineru_mvp/
# Create data directories
RUN mkdir -p /app/backend/data/uploads \
/app/backend/data/jobs \
/app/backend/data/kg \
/app/backend/data/batches \
/app/mineru_mvp/output
# Update paths for container environment
ENV MINERU_PYTHON=/opt/venv/bin/python
ENV MINERU_PIPELINE=/app/mineru_mvp/pipeline.py
EXPOSE 8000
WORKDIR /app/backend
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]