hmtxj commited on
Commit
2703d35
·
verified ·
1 Parent(s): e7fe403

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +5 -42
Dockerfile CHANGED
@@ -1,51 +1,14 @@
1
  FROM node:20-alpine
2
-
3
- # 1. 安装 Git (用于拉取代码)
4
  RUN apk add --no-cache git
5
-
6
- # 2. 设置工作目录
7
  WORKDIR /app
8
-
9
- # 3. 拉取你的 GitHub 代码
10
  RUN git clone https://github.com/hmtxj/AIClient-2-API.git .
11
-
12
- # 4. 安装依赖
13
  RUN npm install
14
-
15
- # 5. 创建启动脚本 (这是核心魔法)
16
- # 这个脚本会自动处理 /configs 目录的持久化
17
- RUN echo '#!/bin/sh' > /app/start.sh && \
18
- echo 'set -e' >> /app/start.sh && \
19
- echo 'echo "Starting deployment script..."' >> /app/start.sh && \
20
- echo '# 检查是否有持久化存储挂载在 /data' >> /app/start.sh && \
21
- echo 'if [ -d "/data" ]; then' >> /app/start.sh && \
22
- echo ' echo "Persistent storage /data detected."' >> /app/start.sh && \
23
- echo ' mkdir -p /data/configs' >> /app/start.sh && \
24
- echo ' mkdir -p /data/logs' >> /app/start.sh && \
25
- echo ' # 如果持久化目录是空的,把默认配置复制进去' >> /app/start.sh && \
26
- echo ' if [ -z "$(ls -A /data/configs)" ]; then' >> /app/start.sh && \
27
- echo ' echo "Initializing persistent configs..."' >> /app/start.sh && \
28
- echo ' cp -r /app/configs/* /data/configs/' >> /app/start.sh && \
29
- echo ' fi' >> /app/start.sh && \
30
- echo ' # 删除原始 configs 目录,建立软链接指向持久化目录' >> /app/start.sh && \
31
- echo ' rm -rf /app/configs' >> /app/start.sh && \
32
- echo ' ln -s /data/configs /app/configs' >> /app/start.sh && \
33
- echo ' rm -rf /app/logs' >> /app/start.sh && \
34
- echo ' ln -s /data/logs /app/logs' >> /app/start.sh && \
35
- echo 'else' >> /app/start.sh && \
36
- echo ' echo "WARNING: No persistent storage found. Configs will be lost on restart."' >> /app/start.sh && \
37
- echo 'fi' >> /app/start.sh && \
38
- echo '# 启动应用,并注入环境变量' >> /app/start.sh && \
39
- echo 'exec node src/core/master.js --port 7860 --host 0.0.0.0 --api-key ${API_KEY:-123456}' >> /app/start.sh && \
40
- chmod +x /app/start.sh
41
-
42
- # 6. 设置权限 (Hugging Face 强制要求非 Root 用户)
43
  RUN adduser -D -u 1000 user && \
 
44
  chown -R user:user /app
45
-
46
- # 7. 切换用户并暴露端口
47
  USER user
48
  EXPOSE 7860
49
-
50
- # 8. 启动
51
- CMD ["/app/start.sh"]
 
1
  FROM node:20-alpine
2
+ # 安装 git
 
3
  RUN apk add --no-cache git
 
 
4
  WORKDIR /app
5
+ # 强制拉取最新代码
 
6
  RUN git clone https://github.com/hmtxj/AIClient-2-API.git .
 
 
7
  RUN npm install
8
+ # 创建用户 & 权限 (重要)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  RUN adduser -D -u 1000 user && \
10
+ mkdir -p logs configs && \
11
  chown -R user:user /app
 
 
12
  USER user
13
  EXPOSE 7860
14
+ CMD ["node", "src/core/master.js", "--port", "7860", "--host", "0.0.0.0"]