概述
沙箱模板允许您创建预配置的沙箱环境,包含自定义基础镜像、依赖包、文件和启动命令。使用模板可以大幅减少启动时间。
什么是模板
模板是预构建的沙箱环境,包含:
- 基础镜像:Ubuntu、Debian、Python、Node.js 等
- 依赖包:预安装的系统包和语言包
- 文件系统:预复制的文件和配置
- 环境变量:构建时设置的环境变量
- 启动命令:沙箱启动时自动运行的进程
优势
- 快速启动:几百毫秒内启动
- 预运行进程:服务器、数据库等已运行
- 一致性:所有实例使用相同配置
创建模板
使用 SDK 的 Builder 模式定义和构建模板:
import { Template, waitForPort } from '@e2b/code-interpreter'
// 使用 Builder 模式定义模板
const template = Template()
.fromPythonImage('3.11')
.setEnvs({ ENV: 'production' })
.setWorkdir('/app')
.pipInstall(['numpy', 'pandas'])
.setStartCmd('python server.py', waitForPort(8000))
// 构建并部署模板
const buildInfo = await Template.build(template, {
alias: 'my-python-env',
cpuCount: 2,
memoryMB: 1024
})
console.log('Template ID:', buildInfo.templateId)
注:像 fromBaseImage()、fromPythonImage() 等默认会从 docker.io 拉取官方镜像,可能大概率会失败(超时、Connection reset 等)。
推荐做法:
- 提前把基础镜像同步到国内可访问的镜像仓库
- 在模板中使用完整的镜像路径,例如:
.fromImage("m.daocloud.io/docker.io/library/nginx")
模板命名
为模板指定清晰、描述性的别名,建议使用业务前缀:
- 业务前缀 + 应用名称:
mycompany-app - 业务前缀 + 应用名称 + 环境:
mycompany-app-production、mycompany-app-staging
注意: 模板别名 (alias) 是全局唯一的,请使用业务前缀来确保唯一性。
使用模板
构建完成后,使用模板别名创建沙箱:
import { Sandbox } from '@e2b/code-interpreter'
const sandbox = await Sandbox.create({
template: 'my-python-env'
})
文档反馈
(如有产品使用问题,请 提交工单)