issaocean commited on
Commit
8c7e657
·
verified ·
1 Parent(s): f1396cc

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +73 -21
Dockerfile CHANGED
@@ -1,27 +1,79 @@
1
- FROM node:lts AS BUILD_IMAGE
2
 
3
  WORKDIR /app
 
 
4
  RUN apt-get update && \
5
- apt-get install -y git && \
6
- git clone https://github.com/LLM-Red-Team/deepseek-free-api.git /app && \
7
- apt-get remove -y git && \
8
- apt-get autoremove -y
9
- RUN ls /app
10
- RUN sed -i "s|prefix: '/v1/chat',|prefix: '/api/v1/chat',|g" /app/src/api/routes/chat.ts
11
- RUN sed -i "s|prefix: '/v1',|prefix: '/api/v1',|g" /app/src/api/routes/models.ts
12
- RUN yarn install --registry https://registry.npmmirror.com/ && yarn run build
13
- FROM node:lts-alpine
14
-
15
-
16
- COPY --from=BUILD_IMAGE /app/configs /app/configs
17
- COPY --from=BUILD_IMAGE /app/package.json /app/package.json
18
- COPY --from=BUILD_IMAGE /app/dist /app/dist
19
- COPY --from=BUILD_IMAGE /app/public /app/public
20
- COPY --from=BUILD_IMAGE /app/node_modules /app/node_modules
21
- WORKDIR /app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
- RUN chmod -R 777 /app
 
 
 
 
 
 
 
 
 
24
 
25
- EXPOSE 8000
26
 
27
- CMD ["npm", "start"]
 
1
+ FROM python:3.11-slim
2
 
3
  WORKDIR /app
4
+
5
+ # 安装必要工具
6
  RUN apt-get update && \
7
+ apt-get install -y --no-install-recommends git && \
8
+ rm -rf /var/lib/apt/lists/*
9
+
10
+ # 添加一个 ADD 指令获取时间戳文件,强制后续指令不使用缓存
11
+ ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" checkout
12
+
13
+
14
+ # 先清理工作目录,然后克隆仓库
15
+ RUN rm -rf * && git clone https://github.com/iidamie/deepseek2api.git . \
16
+ && rm -rf .git
17
+
18
+ # 创建生成配置的Python脚本
19
+ RUN echo '#!/usr/bin/env python3\n\
20
+ import os\n\
21
+ import json\n\
22
+ \n\
23
+ def load_existing_config():\n\
24
+ try:\n\
25
+ with open("config.json", "r") as f:\n\
26
+ return json.load(f)\n\
27
+ except FileNotFoundError:\n\
28
+ return {"keys": [], "accounts": []}\n\
29
+ \n\
30
+ # 读取原有配置\n\
31
+ config = load_existing_config()\n\
32
+ \n\
33
+ # 读取环境变量\n\
34
+ keys = os.environ.get("KEYS", "")\n\
35
+ tokens = os.environ.get("TOKENS", "")\n\
36
+ \n\
37
+ # 只在环境变量存在时更新配置\n\
38
+ if keys.strip():\n\
39
+ config["keys"] = [k.strip() for k in keys.split(",") if k.strip()]\n\
40
+ \n\
41
+ if tokens.strip():\n\
42
+ config["accounts"] = [\n\
43
+ {\n\
44
+ "email": t.strip(),\n\
45
+ "password": "",\n\
46
+ "token": t.strip()\n\
47
+ } for t in tokens.split(",") if t.strip()\n\
48
+ ]\n\
49
+ \n\
50
+ # 写入新配置\n\
51
+ with open("config.json", "w") as f:\n\
52
+ json.dump(config, f, indent=2)\n\
53
+ ' > generate_config.py && chmod +x generate_config.py
54
+
55
+ # 安装依赖
56
+ RUN pip install --no-cache-dir -r requirements.txt
57
+
58
+ # 替换路由路径
59
+ RUN sed -i 's|@app.post("/v1/|@app.post("/deep/v1/|g' app.py && \
60
+ sed -i 's|@app.get("/v1/|@app.get("/deep/v1/|g' app.py
61
+
62
+ # 确保文件权限正确
63
+ RUN chmod 777 /app && \
64
+ chmod 666 config.json
65
 
66
+ # 创建启动脚本
67
+ RUN echo '#!/bin/sh\n\
68
+ python generate_config.py\n\
69
+ echo "==========================================="\n\
70
+ echo "Current config.json content:"\n\
71
+ echo "==========================================="\n\
72
+ cat config.json\n\
73
+ echo "==========================================="\n\
74
+ exec python app.py\n\
75
+ ' > entrypoint.sh && chmod +x entrypoint.sh
76
 
77
+ EXPOSE 5001
78
 
79
+ ENTRYPOINT ["./entrypoint.sh"]