Эх сурвалжийг харах

chore(langgraph): harden Dockerfile + compose host + ignore venv tarballs

Xiaogang Liao 1 сар өмнө
parent
commit
8756aee099

+ 1 - 0
cfc-langgraph/.gitignore

@@ -9,3 +9,4 @@ dist/
 
 # Un-ignore .py files (root .gitignore has *.py)
 !*.py
+.venv-bin.tar.gz\n.venv-packages.tar.gz

+ 11 - 17
cfc-langgraph/Dockerfile

@@ -1,34 +1,28 @@
-# ── 构建阶段 ──
-FROM python:3.11-slim AS builder
-
-WORKDIR /build
-RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends gcc g++ python3-dev && rm -rf /var/lib/apt/lists/*
-
-COPY pyproject.toml .
-RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip && \
-    pip download --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -d /wheels -e . && \
-    pip download --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -d /wheels gunicorn
-
-# ── 运行阶段 ──
-FROM python:3.11-slim
+# ── 运行镜像 ──
+FROM python:3.12-slim
 
 ENV TZ=Asia/Shanghai
 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 
 WORKDIR /app
 
-COPY --from=builder /wheels /wheels
-RUN pip install --no-cache-dir --find-links /wheels cfc-langgraph gunicorn && rm -rf /wheels
+COPY .venv-packages.tar.gz /tmp/pkgs.tar.gz
+RUN tar xzf /tmp/pkgs.tar.gz -C /usr/local/lib/python3.12/site-packages/ && \
+    rm /tmp/pkgs.tar.gz
 
 COPY app/ app/
 COPY data/ data/
 
-RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
+RUN useradd -m -u 1000 appuser && \
+    chown -R appuser:appuser /app && \
+    mkdir -p /data/chroma_db && \
+    chown -R appuser:appuser /data
+
 USER appuser
 
 EXPOSE 9000
 
-CMD ["gunicorn", "app.main:app", \
+CMD ["python3", "-m", "gunicorn", "app.main:app", \
      "--worker-class", "uvicorn.workers.UvicornWorker", \
      "--bind", "0.0.0.0:9000", \
      "--workers", "2", \

+ 2 - 3
cfc-langgraph/docker-compose.yml

@@ -29,7 +29,7 @@ services:
     env_file:
       - .env.production
     environment:
-      - JAVA_BASE_URL=http://cfc-backend:9082
+      - JAVA_BASE_URL=http://172.17.0.1:9082
       - CHROMA_DB_PATH=/data/chroma_db
       - JSON_LOGS=true
       - LANGCHAIN_TRACING_V2=${LANGCHAIN_TRACING_V2:-false}
@@ -43,8 +43,7 @@ services:
       interval: 30s
       timeout: 5s
       retries: 3
-    depends_on:
-      - cfc-backend
+
 
   prometheus:
     image: prom/prometheus:latest