Environment variables
This page covers how to set and use environment variables in a sandbox, and default environment variables inside the sandbox.
Default environment variables
Knowing if you are inside a sandbox
Sometimes it's useful to know if the code is running inside a sandbox. Upon creating a sandbox, useful sandbox metadata is set as environment variables for commands:
E2B_SANDBOX
is set totrue
for processes to know if they are inside our VM.E2B_SANDBOX_ID
to know the ID of the sandbox.E2B_TEAM_ID
to know the team ID that created the sandbox.E2B_TEMPLATE_ID
to know what template was used for the current sandbox.
You can try it out by running the following code in the sandbox:
const sandbox = await Sandbox.create()
const result = await sandbox.commands.run('echo $E2B_SANDBOX_ID')
These default environment variables are only accessible via the SDK, when using the CLI you can find them in the form of dot files in the /run/e2b/
dir:
user@e2b:~$ ls -a /run/e2b/
.E2B_SANDBOX .E2B_SANDBOX_ID .E2B_TEAM_ID .E2B_TEMPLATE_ID
Setting environment variables
There are 3 ways to set environment variables in a sandbox:
- Global environment variables when creating the sandbox.
- When running code in the sandbox.
- When running commands in the sandbox.
1. Global environment variables
You can set global environment variables when creating a sandbox.
import { Sandbox } from '@e2b/code-interpreter'
const sandbox = await Sandbox.create({
envs: {
MY_VAR: 'my_value',
},
})
2. Setting environment variables when running code
You can set environment variables for specific code execution call in the sandbox. This is recommended for passing secrets.
- These environment variables are securely scoped to the command and will not be global or accessible inside the sandbox or for subsequent commands.
- If you had a global environment variable with the same name, it will be overridden only for the command.
const sandbox = await Sandbox.create()
const result = await sandbox.runCode('import os; print(os.environ.get("MY_VAR"))', {
envs: {
MY_VAR: 'my_value',
},
})
3. Setting environment variables when running commands
You can set environment variables for specific command execution in the sandbox. This is recommended for passing secrets.
- These environment variables are securely scoped to the command and will not be global or accessible inside the sandbox or for subsequent commands.
- If you had a global environment variable with the same name, it will be overridden only for the command.
const sandbox = await Sandbox.create()
sandbox.commands.run('echo $MY_VAR', {
envs: {
MY_VAR: '123',
},
})