File size: 1,468 Bytes
f9bcf0a
 
 
 
 
b1fe40a
f9bcf0a
 
 
 
 
 
984a15f
 
 
7ceeeed
984a15f
 
 
164c436
7ceeeed
b1fe40a
 
 
f9bcf0a
5d5cd66
 
94bb158
669a680
 
 
 
 
 
 
 
5ac94f7
 
164c436
 
7ceeeed
41b5db2
044ebbe
 
 
 
f9bcf0a
984a15f
7ceeeed
 
 
5ac94f7
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
FROM python:3.11

# 安装系统依赖
RUN apt-get update && \
    apt-get install -y ca-certificates curl gnupg && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 克隆DeepClaude仓库
RUN git clone https://github.com/ErlichLiu/DeepClaude.git /app
WORKDIR /app

# 安装必要的依赖
RUN pip install --no-cache-dir fastapi uvicorn python-dotenv huggingface_hub

# 自动检测可能需要的其他依赖
RUN grep -r "import" --include="*.py" /app | grep -v "from app" | sort | uniq | \
    grep -oP "(?<=import )[a-zA-Z0-9_]+|(?<=from )[a-zA-Z0-9_]+" | sort | uniq | \
    xargs -I{} pip install --no-cache-dir {} || true

# 如果仓库中有requirements.txt,也安装
RUN if [ -f requirements.txt ]; then \
     pip install --no-cache-dir -r requirements.txt; \
    fi

# 创建数据目录并赋予权限
RUN mkdir -p /app/data && chmod -R 777 /app/data
RUN mkdir -p /tmp/.cache && chmod -R 777 /tmp/.cache
ENV HF_HOME=/tmp/.cache/huggingface \
    HF_HUB_DISABLE_SYMLINKS_WARNING=1 \
    HF_HUB_DISABLE_PROGRESS_BARS=1 \
    HF_HUB_CACHE=/tmp/.cache/huggingface \
    HUGGINGFACE_HUB_CACHE=/tmp/.cache/huggingface




# 创建.env文件
RUN touch .env

# 暴露端口
EXPOSE 7860

# 将外部备份脚本复制到容器内
COPY sync_data.sh /app/sync_data.sh
RUN chmod +x /app/sync_data.sh


# 关键修复:将整个 /app 目录权限开放,避免权限问题
RUN chmod -R 777 /app

# 使用备份脚本启动服务
CMD ["/app/sync_data.sh"]