File size: 1,404 Bytes
1d4c524
83176d1
f087b3d
 
 
9053203
1d4c524
 
83176d1
3da1e0c
 
9053203
f087b3d
 
 
 
9053203
f087b3d
1d4c524
 
 
9053203
 
1d4c524
f087b3d
b600148
c65760f
 
 
 
 
a524039
2fda8a9
8faa2d0
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# --- 第一阶段:编译阶段 ---
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"]