Spaces:
Paused
Paused
Update Dockerfile
Browse files- Dockerfile +26 -6
Dockerfile
CHANGED
|
@@ -1,15 +1,35 @@
|
|
| 1 |
-
|
|
|
|
| 2 |
|
| 3 |
# 安装 git
|
| 4 |
RUN apk add --no-cache git
|
| 5 |
|
| 6 |
WORKDIR /app
|
| 7 |
|
| 8 |
-
# 1. 拉取
|
| 9 |
RUN git clone https://github.com/diegosouzapw/OmniRoute.git .
|
| 10 |
|
| 11 |
-
# 2.
|
| 12 |
-
RUN
|
| 13 |
|
| 14 |
-
# 3.
|
| 15 |
-
RUN
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# --- 第一阶段:拉取代码并依赖安装、打包 ---
|
| 2 |
+
FROM node:20-alpine AS builder
|
| 3 |
|
| 4 |
# 安装 git
|
| 5 |
RUN apk add --no-cache git
|
| 6 |
|
| 7 |
WORKDIR /app
|
| 8 |
|
| 9 |
+
# 1. 直接拉取那 5568 个文件
|
| 10 |
RUN git clone https://github.com/diegosouzapw/OmniRoute.git .
|
| 11 |
|
| 12 |
+
# 2. 安装项目所需的前后端依赖(跳过不必要的准备脚本)
|
| 13 |
+
RUN npm install --include=dev --ignore-scripts
|
| 14 |
|
| 15 |
+
# 3. 如果项目有 build 步骤则进行打包(如果打包报错,可以注释掉这行直接起服务)
|
| 16 |
+
RUN npm run build || true
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
# --- 第二阶段:极简轻量运行容器 ---
|
| 20 |
+
FROM node:20-alpine
|
| 21 |
+
|
| 22 |
+
WORKDIR /app
|
| 23 |
+
|
| 24 |
+
# 从打包阶段把所有文件拷贝过来
|
| 25 |
+
COPY --from=builder /app .
|
| 26 |
+
|
| 27 |
+
# 关键:Hugging Face 强制端口锁死在 7860
|
| 28 |
+
ENV PORT=7860
|
| 29 |
+
ENV OMNIROUTE_PORT=7860
|
| 30 |
+
ENV HOST=0.8.8.8
|
| 31 |
+
EXPOSE 7860
|
| 32 |
+
|
| 33 |
+
# 4. 根据 package.json 里的配置启动服务
|
| 34 |
+
# 如果它是个纯后端/Next.js 全栈服务,通常是 npm run start 或 node bin/omniroute.mjs
|
| 35 |
+
CMD ["npm", "run", "start"]
|