timindev commited on
Commit
c2999bd
·
verified ·
1 Parent(s): 1b666bc

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +14 -10
Dockerfile CHANGED
@@ -1,26 +1,30 @@
1
- # 1. 使用 Node.js 18 (该项目最兼容的版本)
2
- FROM node:18-slim
3
 
4
  # 2. 安装 git
5
  RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
6
 
7
  WORKDIR /app
8
 
9
- # 3. 克隆官方代码
10
  RUN git clone https://github.com/titaniumnetwork-dev/Ultraviolet-App.git .
11
 
12
  # 4. 安装依赖
13
  RUN npm install
14
 
15
- # 5. --- 核心修复:精准解决绝对路径报错,防止路径重复 ---
16
- # 我们将 res.sendFile 的 root 设置为 /app (当前工作目录)
17
- # 这样代码里的 "public/index.html" 就会被正确解析为 "/app/public/index.html"
18
- RUN sed -i 's|res.sendFile(\([^,)]*\))|res.sendFile(\1, { root: "/app" })|g' src/index.js
19
 
20
- # 6. 设置环境变量
 
 
 
 
21
  ENV PORT=7860
22
  ENV NODE_ENV=production
23
  EXPOSE 7860
24
 
25
- # 7. 启动
26
- CMD ["npm", "start"]
 
1
+ # 1. 使用 Node.js 20 (目前最推荐的版本)
2
+ FROM node:20-slim
3
 
4
  # 2. 安装 git
5
  RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
6
 
7
  WORKDIR /app
8
 
9
+ # 3. 克隆代码
10
  RUN git clone https://github.com/titaniumnetwork-dev/Ultraviolet-App.git .
11
 
12
  # 4. 安装依赖
13
  RUN npm install
14
 
15
+ # 5. --- 核心修复:修复绝对路径报错 + 确保路径正确 ---
16
+ # 我们将所有的 res.sendFile(path) 修改为 res.sendFile(path, { root: "/app/public" })
17
+ # 这样能确保服务器不崩溃,并且能找到正确的 public 文件夹
18
+ RUN sed -i 's|res.sendFile(\([^,)]*\))|res.sendFile(\1, { root: "/app/public" })|g' src/index.js
19
 
20
+ # 6. --- 强制对齐 Bare Server 路径 ---
21
+ # 确保前端 uv.config.js 找的是 /bare/,后端也运行在 /bare/
22
+ RUN sed -i "s|bare: [^,]*|bare: '/bare/'|g" public/uv/uv.config.js || true
23
+
24
+ # 7. 环境变量与端口
25
  ENV PORT=7860
26
  ENV NODE_ENV=production
27
  EXPOSE 7860
28
 
29
+ # 8. 直接运行 node 启动(跳过可能出错的 npm 脚本)
30
+ CMD ["node", "src/index.js"]