跳转到内容

在 Docker 沙箱上自托管

node-docker 驱动把每个 Session 运行在与 Node 服务器同一台主机的 Docker 容器里,通过 Docker CLI 适配器驱动——不需要外部沙箱账号。工作区位于宿主机文件系统,在文件系统层面做持久的工作区检查点/恢复——没有进程内存检查点,也没有提供商侧挂起/恢复。

  • Docker 已安装且对 worker 进程可达(DockerCommandPort 适配器;非标准环境可注入自定义 docker 命令端口)。
  • 镜像引用,如 node:22-slim。
  • Node 自托管自身的要求(BETTER_AUTH_SECRET、PLATFORM_ROOT_SECRET、一个 SQL 后端)。见 Node + Docker(不用 Cloudflare)。

Docker 作为预装的 Node 运行时组合,而不是通过 SANDBOX_PROVIDER。工厂是 @open-managed-agents/managed-runtime-node 的 createNodeManagedRuntime / createNodeManagedRuntimeDriver / createNodeManagedEnvironmentWorker:

const runtime = await createNodeManagedRuntime({
rootDir: "/var/lib/openma",
sql, // SqlClient——SQLite/Postgres/MySQL
initializeFenceSchema: true,
ownerId: processId,
leaseTtlMs: 90_000,
heartbeatIntervalMs: 30_000,
image: "node:22-slim",
});

完整选项集:rootDir、sql、initializeFenceSchema、ownerId、 leaseTtlMs、heartbeatIntervalMs、checkpointIntervalMs、image、 network、docker、additionalMounts(source/destination/readOnly)、 extraHosts、scheduler、fence、runtimeCheckpoint、 credentialEgress、sessionInputs。

Harness 通道ama_worker、openma_supervised
suspendResume不支持
工作区checkpoint_restore,持久(宿主机文件系统)
输出final_collect,持久(宿主机文件系统)
进程检查点无
凭证出口默认 unsupported/snapshot