概述
使用 SDK Builder API 定义完整的沙箱模板配置。
Builder 模式
SDK 提供了链式 Builder API 来定义模板:
import { Template, waitForPort } from '@e2b/code-interpreter'
const template = Template()
.fromPythonImage('3.11')
.setUser('user')
.setWorkdir('/app')
.setEnvs({ ENV: 'production' })
.pipInstall(['numpy', 'pandas'])
.runCmd('echo "Setup complete"')
.setStartCmd('python server.py', waitForPort(8000))
基础镜像方法
选择基础镜像:
fromPythonImage(version)- Python 镜像fromNodeImage(variant)- Node.js 镜像fromUbuntuImage(variant)- Ubuntu 镜像fromDebianImage(variant)- Debian 镜像fromBunImage(variant)- Bun 镜像fromImage(image)- 任意 Docker 镜像fromDockerfile(content)- 从 Dockerfile 构建fromTemplate(name)- 基于现有模板
文件系统方法
管理模板文件系统:
copy(src, dest)- 复制文件或目录remove(path)- 删除文件或目录rename(src, dest)- 重命名文件或目录makeDir(path)- 创建目录makeSymlink(src, dest)- 创建符号链接
命令执行方法
在构建时执行命令:
runCmd(command)- 执行命令pipInstall(packages)- 安装 Python 包npmInstall(packages)- 安装 npm 包bunInstall(packages)- 安装 Bun 包aptInstall(packages)- 安装 apt 包gitClone(url, path)- 克隆 Git 仓库
配置方法
设置模板配置:
setUser(user)- 设置默认用户setWorkdir(path)- 设置工作目录setEnvs(envs)- 设置环境变量setStartCmd(cmd, readyCmd)- 设置启动命令和就绪检查setReadyCmd(cmd)- 设置就绪检查命令
完整示例
import { Template, waitForPort } from '@e2b/code-interpreter'
async function main() {
const template = Template()
// 基础镜像
.fromNodeImage('20')
// 文件系统
.setWorkdir('/app')
.copy('./package.json', '/app/package.json')
.copy('./src', '/app/src')
// 安装依赖
.npmInstall()
// 环境变量
.setEnvs({
NODE_ENV: 'production',
PORT: '3000'
})
// 用户配置
.setUser('user')
// 启动配置
.setStartCmd('npm start', waitForPort(3000))
// 构建模板
const buildInfo = await Template.build(template, {
alias: 'my-node-app',
cpuCount: 2,
memoryMB: 1024
})
}
main()
文档反馈
(如有产品使用问题,请 提交工单)