适用于 GCP、Hetzner 等 VPS 上 Docker 部署的共享运行时步骤。
核心原则
容器是临时的,所有长期状态必须挂载到宿主机。运行时安装的二进制文件会在重启后丢失,必须在镜像构建时烘焙进去。
烘焙必要二进制文件
FROM node:24-bookworm
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
# Gmail CLI(gogcli)
RUN curl -L https://github.com/steipete/gogcli/releases/latest/download/gogcli_linux_amd64.tar.gz \
| tar -xzO gog > /usr/local/bin/gog; chmod +x /usr/local/bin/gog
# WhatsApp CLI
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli-linux-amd64.tar.gz \
| tar -xzO wacli > /usr/local/bin/wacli; chmod +x /usr/local/bin/wacli
WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
COPY ui/package.json ./ui/package.json
COPY scripts ./scripts
RUN corepack enable && pnpm install --frozen-lockfile
COPY . .
RUN pnpm build && pnpm ui:install && pnpm ui:build
ENV NODE_ENV=production
CMD ["node","dist/index.js"]ARM VM 需选择 arm64 资产;生产环境建议固定版本 URL。
构建与启动
docker compose build
docker compose up -d openclaw-gateway构建时若出现 Killed 或 exit code 137,说明 VM 内存不足,需升级机型。
验证二进制文件:
docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which wacli持久化映射
| 组件 | 容器路径 | 持久化方式 |
|---|---|---|
| Gateway 配置 | /home/node/.openclaw/ | 宿主机卷挂载 |
| 模型 auth profiles | /home/node/.openclaw/agents/ | 宿主机卷挂载 |
| Agent workspace | /home/node/.openclaw/workspace/ | 宿主机卷挂载 |
| WhatsApp session | /home/node/.openclaw/ | 宿主机卷挂载 |
| 外部二进制文件 | /usr/local/bin/ | Docker 镜像(构建时烘焙) |
| 容器本身 | 临时 | 可安全销毁 |
更新流程
git pull
docker compose build
docker compose up -d相关链接
- install-docker — Docker 基础安装
- install-hetzner — Hetzner VPS 部署
- install-gcp — GCP 部署