在构建沙箱模板过程中,会执行启动命令,并且通过对命令运行结果进行快照,基于该快照启动沙箱时,能做到极低的用户等待时间(约 200ms),并在您生成沙箱时为用户准备好一切。详情请参考 工作原理

如何添加启动命令

在构建沙箱模板时,您可以使用 -c 选项指定启动命令:

Bash
e2b template build -c "<your-start-command>"

通过配置文件

您也可以在运行 e2b template build 命令的同一目录下的 e2b.toml 文件内指定启动命令。

Toml
template_id = "0r0efkbfwzfp9p7qpc1c"
dockerfile = "e2b.Dockerfile"
template_name = "my-agent-sandbox"
start_cmd = "<your-start-command>"

日志

您可以在沙箱运行时使用 SDK 获取启动命令的日志。

这些日志是在模板构建阶段启动命令的输出日志。

import { Sandbox } from '@e2b/code-interpreter'

// 生成您的自定义沙箱
const sandbox = await Sandbox.create({
  id: 'my-agent-sandbox',
  // 如果您在生成沙箱时指定 onStderr 和 onStdout,您将看到启动命令的日志。
  onStderr: output => console.log("stderr", output.line),
  onStdout: output => console.log("stdout", output.line),
})

// 关闭沙箱
await sandbox.close()

也可以使用命令行工具查询沙箱启动命令的日志:

Bash
e2b sandbox logs <sandbox-id>