Update Dockerfile
Browse files- Dockerfile +21 -8
Dockerfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
# 第一阶段:编译阶段 -
|
| 2 |
FROM node:22-slim AS builder
|
| 3 |
|
| 4 |
# 安装构建必需的依赖
|
|
@@ -7,22 +7,35 @@ RUN apt-get update && apt-get install -y git python3 make g++ && rm -rf /var/lib
|
|
| 7 |
# 克隆源码
|
| 8 |
WORKDIR /build
|
| 9 |
RUN git clone https://github.com/moltbot/moltbot.git .
|
| 10 |
-
RUN npm install -g pnpm && pnpm install && pnpm run build
|
| 11 |
|
| 12 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
FROM node:22-slim
|
|
|
|
| 14 |
WORKDIR /app
|
| 15 |
|
| 16 |
-
#
|
|
|
|
|
|
|
|
|
|
| 17 |
COPY --from=builder /build/dist ./dist
|
| 18 |
COPY --from=builder /build/package.json ./package.json
|
| 19 |
COPY --from=builder /build/node_modules ./node_modules
|
| 20 |
-
RUN npm cache clean --force
|
| 21 |
|
| 22 |
# 设置环境变量
|
| 23 |
-
ENV PORT=7860
|
| 24 |
ENV NODE_ENV=production
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
EXPOSE 7860
|
| 26 |
|
| 27 |
-
#
|
| 28 |
-
|
|
|
|
|
|
| 1 |
+
# --- 第一阶段:编译阶段 ---
|
| 2 |
FROM node:22-slim AS builder
|
| 3 |
|
| 4 |
# 安装构建必需的依赖
|
|
|
|
| 7 |
# 克隆源码
|
| 8 |
WORKDIR /build
|
| 9 |
RUN git clone https://github.com/moltbot/moltbot.git .
|
|
|
|
| 10 |
|
| 11 |
+
# 安装 pnpm 并构建
|
| 12 |
+
RUN npm install -g pnpm && \
|
| 13 |
+
pnpm install && \
|
| 14 |
+
pnpm run build
|
| 15 |
+
|
| 16 |
+
# --- 第二阶段:运行阶段 ---
|
| 17 |
FROM node:22-slim
|
| 18 |
+
|
| 19 |
WORKDIR /app
|
| 20 |
|
| 21 |
+
# 安装 pnpm(运行某些内置脚本可能需要)
|
| 22 |
+
RUN npm install -g pnpm
|
| 23 |
+
|
| 24 |
+
# 拷贝构建好的文件
|
| 25 |
COPY --from=builder /build/dist ./dist
|
| 26 |
COPY --from=builder /build/package.json ./package.json
|
| 27 |
COPY --from=builder /build/node_modules ./node_modules
|
|
|
|
| 28 |
|
| 29 |
# 设置环境变量
|
|
|
|
| 30 |
ENV NODE_ENV=production
|
| 31 |
+
ENV PORT=7860
|
| 32 |
+
# 强制标记为容器环境,尝试规避 systemctl 逻辑
|
| 33 |
+
ENV CONTAINER=true
|
| 34 |
+
ENV MOLT_SKIP_SERVICE_CHECK=true
|
| 35 |
+
|
| 36 |
+
# 暴露端口
|
| 37 |
EXPOSE 7860
|
| 38 |
|
| 39 |
+
# 核心修复:直接运行编译后的 JS 文件,而不是通过 'moltbot gateway start' 这种触发 systemctl 的命令
|
| 40 |
+
# 这里的路径 'dist/cli.js' 是 Moltbot 的通用入口点
|
| 41 |
+
CMD ["node", "dist/cli.js", "start", "--port", "7860", "--no-service"]
|