timindev commited on
Commit
e2afbb3
·
verified ·
1 Parent(s): 5c42062

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +11 -9
Dockerfile CHANGED
@@ -1,4 +1,3 @@
1
- # 使用 Node.js 18 镜像
2
  FROM node:18-slim
3
 
4
  # 安装 git
@@ -6,22 +5,25 @@ RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
6
 
7
  WORKDIR /app
8
 
9
- # 克隆代码
10
  RUN git clone https://github.com/titaniumnetwork-dev/Ultraviolet-App.git .
11
 
12
  # 安装依赖
13
  RUN npm install
14
 
15
- # --- 核心修复:修复绝对路径报错 ---
16
- # 这个 sed 命令会把 res.sendFile(path) 替换为兼容绝对路径的写法
17
- # 它会强制指向 /app/public 目录
18
- RUN sed -i 's|res.sendFile(\([^,)]*\))|res.sendFile(\1, { root: "/app/public" })|g' src/index.js || true
 
 
 
19
 
20
- # 设置环境变量
21
  ENV PORT=7860
22
  ENV NODE_ENV=production
23
 
24
  EXPOSE 7860
25
 
26
- # 启动
27
- CMD ["npm", "start"]
 
 
1
  FROM node:18-slim
2
 
3
  # 安装 git
 
5
 
6
  WORKDIR /app
7
 
8
+ # 克隆官方代码
9
  RUN git clone https://github.com/titaniumnetwork-dev/Ultraviolet-App.git .
10
 
11
  # 安装依赖
12
  RUN npm install
13
 
14
+ # --- 核心修复:彻底解决 path must be absolute 报错 ---
15
+ # 使用 sed 强制将代码中所有的 res.sendFile 路径包装在 path.join 中
16
+ # 并且确保在文件开头引入了 path 模块
17
+ RUN sed -i "1i import path from 'path';" src/index.js && \
18
+ sed -i "1i import { fileURLToPath } from 'url';" src/index.js && \
19
+ sed -i "1i const __dirname = path.dirname(fileURLToPath(import.meta.url));" src/index.js && \
20
+ sed -i "s|res.sendFile(\([^,)]*\))|res.sendFile(path.join(process.cwd(), '/public/', \1))|g" src/index.js
21
 
22
+ # 环境变量
23
  ENV PORT=7860
24
  ENV NODE_ENV=production
25
 
26
  EXPOSE 7860
27
 
28
+ # 启动命令
29
+ CMD ["node", "src/index.js"]