Exec
The Exec resource lets you execute scripts and commands either locally on the host machine or remotely inside containers. It provides a flexible way to automate environment setup, system configuration, and custom workflows as part of your lab sandbox, without needing to write configuration files.
Through the UI, you can define exec settings such as the script content, execution mode (local or remote), timeout, environment variables, and output handling. For remote execution, you can either create a new container or target an existing one, with support for network attachments and volume mounts.
Exec resources are ideal for tasks like installing dependencies, configuring services, running build scripts, and initializing databases during lab setup.
For more information on the exec sandbox resource, please refer to the Exec Reference documentation.
Execution modes
Section titled “Execution modes”The exec resource supports three distinct execution modes:
- Local: runs the script directly on the host machine.
- Remote (new container): creates a new container from a specified image and runs the script inside it. Supports network attachments and volume mounts.
- Remote (existing resource): runs the script inside an already running container by selecting it from a list of existing ones. Only available when your lab already contains a container resource.
The Working Directory, Timeout, and Run As fields are shown for every mode. The Daemon switch is the only field gated by mode: it only appears in local mode.
Creating an Exec resource
Section titled “Creating an Exec resource”Exec resources can be created in the Sandbox tab. To create a new Exec resource, navigate to the Sandbox tab and click the + button. Select Exec from the dropdown menu.
Start by naming the exec resource. Note that this is an internal name. You must provide a script to execute, and optionally configure the execution mode, timeout, environment variables, and other settings.
Setting the script
Section titled “Setting the script”The Script field is the core of the exec resource, where you write your script directly in the code editor.
Choosing an execution mode
Section titled “Choosing an execution mode”By default, the exec resource runs in Local mode on the host machine. To run the script remotely, choose one of:
- Remote (new container) to create a new container for execution.
- Remote (existing resource) to run the script inside an existing container.
Editing an Exec resource
Section titled “Editing an Exec resource”To edit an exec resource, select it from the list of existing sandboxes in the Sandbox tab. Click on the exec resource you want to edit, make your changes in the configuration panel, and then click Add changes to save your updates. See Editing & Publishing for how changes are reviewed and published.
Configuration
Section titled “Configuration”Script and environment
Section titled “Script and environment”| Field | Required? | Default | Description |
|---|---|---|---|
| Script | ✓ | Script content to execute | |
| Environment | Key-value pairs for environment variables |
Configuration
Section titled “Configuration”These fields are shown for all three execution modes.
| Field | Required? | Default | Description |
|---|---|---|---|
| Working Directory | Directory to execute the script in | ||
| Timeout | Maximum execution time, for example 30s, 5m |
The Daemon switch is the exception: it’s only shown in local mode.
| Field | Required? | Default | Description |
|---|---|---|---|
| Daemon | false |
Run the script as a background daemon process |
This section also includes a Run As group, shown for all three modes:
| Field | Required? | Default | Description |
|---|---|---|---|
| User | Username or user ID | ||
| Group | Group name or group ID |
Remote execution (new container)
Section titled “Remote execution (new container)”These fields appear only in Remote (new container) mode.
Container
Section titled “Container”| Field | Required? | Default | Description |
|---|---|---|---|
| Name | ✓ | Docker image name with optional tag |
Selecting a custom image also reveals Username and Password fields for pulling from a private registry.
Network
Section titled “Network”| Field | Required? | Default | Description |
|---|---|---|---|
| ID | ✓ | Reference to a network resource | |
| IP Address | Static IP address (auto-assigned if not set) |
Volume
Section titled “Volume”| Field | Required? | Default | Description |
|---|---|---|---|
| Source | ✓ | Source path or volume name | |
| Destination | ✓ | Mount path inside the container | |
| Read Only | false |
Mount the volume as read-only |
Remote execution (existing container)
Section titled “Remote execution (existing container)”This field appears only in Remote (existing resource) mode.
| Field | Required? | Default | Description |
|---|---|---|---|
| Target | ✓ | Reference to an existing container resource |
Summary
Section titled “Summary”The Exec resource provides flexible script execution capabilities for automating setup tasks, system configuration, and custom workflows in your lab sandbox. You can run scripts locally on the host or remotely inside containers, either by creating a new container from an image or by targeting an existing one.
With support for environment variables, output capture, timeouts, and advanced container options like volumes, networks, and user configuration, exec resources give you fine-grained control over your lab’s automation without needing to write configuration files.
