leonsimon23 commited on
Commit
6b9550d
·
verified ·
1 Parent(s): 4e1422a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +22 -40
Dockerfile CHANGED
@@ -1,7 +1,6 @@
1
- # 使用官方Python 3.10 slim镜像
2
  FROM python:3.10-slim
3
 
4
- # --- 1. 安装系统依赖 ---
5
  RUN apt-get update && apt-get install -y --no-install-recommends \
6
  git \
7
  git-lfs \
@@ -10,54 +9,37 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
10
  curl \
11
  && rm -rf /var/lib/apt/lists/*
12
 
13
- # --- 2. 设置工作目录 ---
14
  WORKDIR /src
15
-
16
- # --- 3. Git LFS初始化 ---
17
  RUN git lfs install
18
 
19
- # --- 4. 关键步骤:克隆私有仓库 ---
20
- # 保持你原有的secrets挂载方式,但添加调试和错误处理
21
  RUN --mount=type=secret,id=GH_USER \
22
  --mount=type=secret,id=GH_TOKEN \
23
- echo "Checking secrets..." && \
 
24
  ls -la /run/secrets/ && \
25
- GH_USER=$(cat /run/secrets/GH_USER) && \
26
- GH_TOKEN=$(cat /run/secrets/GH_TOKEN) && \
 
 
 
 
 
27
  echo "User: ${GH_USER}" && \
28
- echo "Starting git clone..." && \
 
29
  git clone https://${GH_USER}:${GH_TOKEN}@github.com/leoncool23/tcm_expert_builder.git && \
30
- echo "Clone completed successfully" && \
31
- ls -la tcm_expert_builder/
 
32
 
33
- # --- 5. 切换到项目目录 ---
34
  WORKDIR /src/tcm_expert_builder
35
 
36
- # --- 6. 验证关键文件存在 ---
37
- RUN echo "Current directory:" && pwd && \
38
- echo "Directory contents:" && ls -la && \
39
- echo "Checking requirements.txt:" && cat requirements.txt
40
-
41
- # --- 7. 安装Python依赖 ---
42
- RUN pip install --no-cache-dir --upgrade pip && \
43
- pip install --no-cache-dir -r requirements.txt
44
-
45
- # --- 8. 配置NLTK和ChromaDB环境 ---
46
- ENV NLTK_DATA=/usr/local/share/nltk_data
47
- ENV ANONYMIZED_TELEMETRY=false
48
- RUN python -m nltk.downloader -d $NLTK_DATA punkt stopwords || \
49
- python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')"
50
-
51
- # --- 9. 创建用户和设置权限 ---
52
- RUN useradd --create-home --shell /bin/bash appuser
53
- RUN chown -R appuser:appuser /src
54
-
55
- # --- 10. 以appuser身份创建目录 ---
56
- USER appuser
57
- RUN mkdir -p ./uploads ./data/vector_db ./data
58
-
59
- # --- 11. 暴露端口 ---
60
  EXPOSE 7860
61
 
62
- # --- 12. 启动应用(保持你原有的gunicorn方式,但添加更多日志) ---
63
- CMD ["gunicorn", "--workers", "1", "--bind", "0.0.0.0:7860", "--timeout", "120", "--log-level", "debug", "--access-logfile", "-", "--error-logfile", "-", "app:app"]
 
 
 
1
+ # 调试版本 - 用于排查问题
2
  FROM python:3.10-slim
3
 
 
4
  RUN apt-get update && apt-get install -y --no-install-recommends \
5
  git \
6
  git-lfs \
 
9
  curl \
10
  && rm -rf /var/lib/apt/lists/*
11
 
 
12
  WORKDIR /src
 
 
13
  RUN git lfs install
14
 
15
+ # 详细调试secrets和git clone
 
16
  RUN --mount=type=secret,id=GH_USER \
17
  --mount=type=secret,id=GH_TOKEN \
18
+ echo "=== 调试信息开始 ===" && \
19
+ echo "检查secrets目录:" && \
20
  ls -la /run/secrets/ && \
21
+ echo "GH_USER内容:" && \
22
+ cat /run/secrets/GH_USER && \
23
+ echo "GH_TOKEN长度:" && \
24
+ wc -c /run/secrets/GH_TOKEN && \
25
+ echo "开始设置变量..." && \
26
+ export GH_USER=$(cat /run/secrets/GH_USER) && \
27
+ export GH_TOKEN=$(cat /run/secrets/GH_TOKEN) && \
28
  echo "User: ${GH_USER}" && \
29
+ echo "Token前4位: ${GH_TOKEN:0:4}..." && \
30
+ echo "尝试克隆..." && \
31
  git clone https://${GH_USER}:${GH_TOKEN}@github.com/leoncool23/tcm_expert_builder.git && \
32
+ echo "克隆成功!" && \
33
+ ls -la tcm_expert_builder/ && \
34
+ echo "=== 调试信息结束 ==="
35
 
 
36
  WORKDIR /src/tcm_expert_builder
37
 
38
+ # 简单启动以测试基本功能
39
+ RUN pip install flask gunicorn
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  EXPOSE 7860
41
 
42
+ # 创建一个简单的测试应用
43
+ RUN echo 'from flask import Flask\napp = Flask(__name__)\n@app.route("/")\ndef hello():\n return "Hello from TCM Expert Builder!"\nif __name__ == "__main__":\n app.run(host="0.0.0.0", port=7860)' > test_app.py
44
+
45
+ CMD ["python", "test_app.py"]