全栈应用服务器

  • 全栈应用服务器 > 使用指南 > 沙箱服务概述 > 沙箱模板 > 定义沙箱模板

    定义沙箱模板

    最近更新时间: 2026-02-12 11:22:04

    概述

    使用 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()
    
    以上内容是否对您有帮助?