Skip to main content
Tensorlake provides managed images optimized for sandbox workloads. These images are designed for rapid boot and are globally available in every project. By default, creating a sandbox without specifying an image uses tensorlake/ubuntu-minimal. These images are fully self-contained and ready to launch without additional build or registration steps. Custom image builds and imports follow a separate workflow, detailed in Build and Import Images.

Available Images

  • tensorlake/ubuntu-minimal (default sandbox image): Minimal Ubuntu, systemd excluded. Recommended for scenarios requiring the lowest cold start latency.
  • tensorlake/ubuntu-systemd: Ubuntu with systemd included. Required for workloads needing service management, such as Docker or Kubernetes, within the sandbox.
  • tensorlake/debian-minimal: Base Debian 13, minimal profile.
In environments where desktop automation is enabled, you may also see:
  • tensorlake/ubuntu-vnc: Desktop-enabled Ubuntu derived from tensorlake/ubuntu-systemd, preinstalled with XFCE, TigerVNC, and Firefox. Intended for browser automation and interactive desktop workloads. See Computer Use for more details.
Launch a sandbox from any of them by name:

Default User and Working Directory

By default, tensorlake/* images execute commands as tl-user (UID 1000, home /home/tl-user), a non-root user with passwordless sudo. Unlike Standard Docker images, which commonly run as root, this configuration enforces user-level isolation. Tools hardcoded to write to root-owned paths such as /workspace will encounter Permission denied errors. Note: non-interactive commands start from the filesystem root /, so relative commands like touch output.txt may fail unless run from a writable directory. Interactive PTY and SSH sessions default to /home/tl-user. To resolve Permission denied errors, ensure commands execute from a directory owned by tl-user (e.g., /home/tl-user), or escalate privileges using sudo or —user root. If files are created as root but need to be accessed by tl-user, adjust ownership with chown:
If a workload consistently requires a path such as /workspace, include its creation and ownership assignment in a custom image build rather than reconfiguring each new sandbox instance:
See Build and Import Images for how to build and register a custom image like this one.
Many third-party integrations assume root and default their workdir to /workspace/<name>. Point them to /home/tl-user/<name>, or use a custom image like the one above. For an example, see the Crabbox guide.

Python Packages

Tensorlake Ubuntu and Debian images include a system Python installation managed according to PEP 668. Installing packages with pip requires --break-system-packages flag, unless a virtual environment is used. Omitting this flag results in the externally-managed-environment error. For ad hoc installation within a running sandbox:
For repeatable installs, put the packages in requirements.txt and install them during a custom image build, as shown in Build and Register an Image.
Do not sidestep PEP 668 by switching Python versions. python3.11 -m pip install ... or another alternate system Python can produce the same externally-managed-environment error. Use --break-system-packages with the system python3, or create an explicit virtual environment.

Using Tensorlake Images as Build Bases

Any tensorlake/* image can be a FROM base (base_image= in the SDKs). See Build and Import Images for the full workflow.

See Also

Build and Import Images

Build your own Docker image or import one from a registry and run it in sandboxes.

Computer Use

Drive the XFCE desktop that ships in tensorlake/ubuntu-vnc.

Lifecycle

Learn which sandbox settings you can override at launch time.