# --- 第一阶段:编译阶段 --- FROM node:22-slim AS builder RUN apt-get update && apt-get install -y git python3 make g++ && rm -rf /var/lib/apt/lists/* WORKDIR /build RUN git clone https://github.com/moltbot/moltbot.git . RUN npm install -g pnpm && pnpm install && pnpm run build # --- 第二阶段:运行阶段 --- FROM node:22-slim WORKDIR /app # 只需要拷贝产物,不需要在这一层安装 pnpm 以减小体积 COPY --from=builder /build/dist ./dist COPY --from=builder /build/package.json ./package.json COPY --from=builder /build/node_modules ./node_modules # 环境变量 ENV NODE_ENV=production ENV PORT=7860 ENV CONTAINER=true ENV MOLT_SKIP_SERVICE_CHECK=true # 很多第三方 API 需要这个来允许跨域或容器通信 ENV HOST=0.0.0.0 EXPOSE 7860 # 使用 --allow-unconfigured 强行启动,并设置模式为 local # 通过环境变量注入配置,通常这种方式比命令行参数更稳 ENV OPENCLAW_GATEWAY_MODE=local ENV MOLT_GATEWAY_MODE=local # 启动命令只保留核心开关 # 在 /app 目录下预创建一个空的或基础的配置文件(假设它寻找的是 .moltrc 或 config.json) # 尝试直接使用 index.js 启动,并确保它不会因为没有 TTY 而退出 # 删掉报错的 --host,只保留它能识别的 --port 和 --allow-unconfigured CMD ["node", "dist/index.js", "gateway", "run", "--port", "7860", "--allow-unconfigured"]