javaeeduke commited on
Commit
262a183
·
verified ·
1 Parent(s): a8c6e61

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +5 -4
Dockerfile CHANGED
@@ -1,4 +1,5 @@
1
- FROM node:20-alpine
 
2
 
3
  # 安装 git 以及运行、编译 SQLite 必须的原生 Linux 依赖包
4
  RUN apk add --no-cache git python3 make g++ sqlite sqlite-dev
@@ -8,10 +9,10 @@ WORKDIR /app
8
  # 1. 抓取源码
9
  RUN git clone https://github.com/diegosouzapw/OmniRoute.git .
10
 
11
- # 2. 【核心修复】修改 next.config.mjs,强制让 Next.js 视 sqlite-vec 为外部原生包,防止编译崩溃
12
  RUN sed -i "s/experimental: {/experimental: {\n serverExternalPackages: ['sqlite-vec', 'better-sqlite3', 'sqlite3'],/g" next.config.mjs || true
13
 
14
- # 3. 安装依赖(现场编译 C++ 驱动
15
  RUN npm install --include=dev
16
 
17
  # 锁死端口与环境
@@ -20,5 +21,5 @@ ENV OMNIROUTE_PORT=7860
20
  ENV HOST=0.0.0.0
21
  EXPOSE 7860
22
 
23
- # 4. 加上允许跨域源参数,用开发模式启动
24
  CMD ["npm", "run", "dev", "--", "--allowed-dev-origins", "javaeeduke-om.hf.space"]
 
1
+ # 升级到满足要求的官方 Node 22 长期支持版容器
2
+ FROM node:22-alpine
3
 
4
  # 安装 git 以及运行、编译 SQLite 必须的原生 Linux 依赖包
5
  RUN apk add --no-cache git python3 make g++ sqlite sqlite-dev
 
9
  # 1. 抓取源码
10
  RUN git clone https://github.com/diegosouzapw/OmniRoute.git .
11
 
12
+ # 2. 【核心修复】修改 next.config.mjs,强行把原生二进制加入外部黑名单,防止前端打包器越界解析
13
  RUN sed -i "s/experimental: {/experimental: {\n serverExternalPackages: ['sqlite-vec', 'better-sqlite3', 'sqlite3'],/g" next.config.mjs || true
14
 
15
+ # 3. 安装依赖(在 Node 22 完美环境下触发更好的现场 C++ 编译
16
  RUN npm install --include=dev
17
 
18
  # 锁死端口与环境
 
21
  ENV HOST=0.0.0.0
22
  EXPOSE 7860
23
 
24
+ # 4. 加上允许跨域源参数,用开发模式顺畅启动
25
  CMD ["npm", "run", "dev", "--", "--allowed-dev-origins", "javaeeduke-om.hf.space"]