Update Dockerfile
Browse files- 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 |
-
#
|
| 17 |
-
#
|
| 18 |
-
RUN sed -i
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
-
#
|
| 21 |
ENV PORT=7860
|
| 22 |
ENV NODE_ENV=production
|
| 23 |
|
| 24 |
EXPOSE 7860
|
| 25 |
|
| 26 |
-
# 启动
|
| 27 |
-
CMD ["
|
|
|
|
|
|
|
| 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"]
|