Base Images
We provide two base images everywhere by default:tensorlake/ubuntu-minimal: A minimal Ubuntu image which doesn’t include systemd, it boots up in a few hundred milliseconds. If you want to optimize cold boot times, use this image.tensorlake/ubuntu-systemd: A Ubuntu image which includes systemd, which offers the flexibility of installing packages like Docker and Kubernetes inside the sandbox.
tensorlake/ubuntu-minimal is the default base image.
In environments where desktop automation is enabled, you may also see:
tensorlake/ubuntu-vnc: A desktop-enabled Ubuntu image based ontensorlake/ubuntu-systemdwith XFCE, TigerVNC, and Firefox preinstalled. Use it for browser automation and computer-use workloads. See Computer Use.
Building Custom Images
You can build a custom image on top of the base images from Python, TypeScript, or a raw Dockerfile. When you build an image, Tensorlake:- Parses the image definition DSL and local source context.
- Starts a temporary sandbox from the selected base image.
- Translates supported build operations such as
run,copy,add,env, andworkdirinto sandbox build steps and executes them there. - Creates a snapshot of the prepared sandbox.
- Registers an image name for that snapshot in your current project.
tl sbx new --image <name>.
Prerequisites
Images are scoped to the project selected in the CLI. Before creating one, make sure you have:- Python
- TypeScript
tl init.
Define an Image
All three approaches below define the same sandbox image. These definitions are DSLs. TensorLake translates the supported operations into sandbox build steps before snapshotting the result.Python
Use Python when you want to define the image with the TensorLakeImage DSL:
TypeScript
Use TypeScript when you want to define the image with the TensorLakeImage DSL:
Dockerfile
Use a raw Dockerfile when you want the image definition checked in directly as infrastructure code:Dockerfile
requirements.txt
Register the Image
Once you have an image definition ready, register it as a Sandbox Image:- CLI
- TypeScript SDK
Skills Image Example
This variant preloads the TensorLake skills repo so coding agents can auto-discover it at startup:Dockerfile
Dockerfile, the registered name defaults to the parent directory name. Otherwise it defaults to the file stem. Registered image names must be unique within a project.
Launch Sandboxes from a custom image
Create a new sandbox from the registered image name. You can still choose CPU, memory, timeout, and entrypoint when the sandbox starts. Then use the sandbox normally:- CLI
- Python
- TypeScript
Supported Build Operations and Limitations
Across the supported image-definition DSLs, TensorLake currently materializes these build operations into the sandbox:RUNWORKDIRENVCOPYADD
CMDENTRYPOINTEXPOSEHEALTHCHECKLABELSTOPSIGNALVOLUME
ARGONBUILDSHELLUSER
- Multi-stage Dockerfiles are not supported yet.
FROMmust reference a base image that TensorLake can launch as a sandbox, such astensorlake/ubuntu-minimalortensorlake/ubuntu-systemd.COPYandADDsources are read from the local filesystem relative to the Dockerfile build context.COPYandADDcurrently assume a local build context. Remote URLs and advanced BuildKit-only features are not supported.tl sbx image createandcreateSandboxImage()both use the current authenticated project context.tl sbx image describeshows the registered Dockerfile and snapshot metadata for a sandbox image.
See Also
Snapshots
Understand the underlying snapshot primitive used to save and restore sandbox state.
Lifecycle
Learn which sandbox settings you can still override when launching from an image.
Skills in Sandboxes
Ship TensorLake SDK docs inside sandbox images for agents and tools.