Image
Represents an image definition for a Daytona sandbox.
Do not construct this class directly. Instead use one of its static factory methods,
such as Image.base()
, Image.debianSlim()
or Image.fromDockerfile()
.
Accessors
contextList
Get Signature
get contextList(): Context[]
Returns
Context
[]
The list of context files to be added to the image.
dockerfile
Get Signature
get dockerfile(): string
Returns:
string
- The Dockerfile content.
Methods
base()
static base(image: string): Image
Creates an Image from an existing base image.
Parameters:
image
string - The base image to use.
Returns:
Image
- The Image instance.
Example:
const image = Image.base('python:3.12-slim-bookworm')
debianSlim()
static debianSlim(pythonVersion?: "3.9" | "3.10" | "3.11" | "3.12" | "3.13"): Image
Creates a Debian slim image based on the official Python Docker image.
Parameters:
pythonVersion?
The Python version to use. -"3.9"
|"3.10"
|"3.11"
|"3.12"
|"3.13"
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12')
fromDockerfile()
static fromDockerfile(path: string): Image
Creates an Image from an existing Dockerfile.
Parameters:
path
string - The path to the Dockerfile.
Returns:
Image
- The Image instance.
Example:
const image = Image.fromDockerfile('Dockerfile')
addLocalDir()
addLocalDir(localPath: string, remotePath: string): Image
Adds a local directory to the image.
Parameters:
localPath
string - The path to the local directory.remotePath
string - The path of the directory in the image.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').addLocalDir('src', '/home/daytona/src')
addLocalFile()
addLocalFile(localPath: string, remotePath: string): Image
Adds a local file to the image.
Parameters:
localPath
string - The path to the local file.remotePath
string - The path of the file in the image.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').addLocalFile( 'requirements.txt', '/home/daytona/requirements.txt')
cmd()
cmd(cmd: string[]): Image
Sets the default command for the image.
Parameters:
cmd
string[] - The command to set as the default command.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').cmd(['/bin/bash'])
dockerfileCommands()
dockerfileCommands(dockerfileCommands: (string | string[])[], contextDir?: string): Image
Extends an image with arbitrary Dockerfile-like commands.
Parameters:
dockerfileCommands
(string | string[])[] - The commands to add to the Dockerfile.contextDir?
string - The path to the context directory.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').dockerfileCommands([ 'RUN echo "Hello, world!"',])
entrypoint()
entrypoint(entrypointCommands: string[]): Image
Sets the entrypoint for the image.
Parameters:
entrypointCommands
string[] - The commands to set as the entrypoint.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').entrypoint(['/bin/bash'])
env()
env(envVars: Record<string, string>): Image
Sets environment variables in the image.
Parameters:
envVars
Record<string, string> - The environment variables to set.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').env({ FOO: 'bar' })
pipInstall()
pipInstall(packages: string | string[], options?: PipInstallOptions): Image
Adds commands to install packages using pip.
Parameters:
packages
The packages to install. -string
|string
[]options?
PipInstallOptions - The options for the pip install command.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').pipInstall('numpy', { findLinks: ['https://pypi.org/simple'],})
pipInstallFromPyproject()
pipInstallFromPyproject(pyprojectToml: string, options?: PyprojectOptions): Image
Installs dependencies from a pyproject.toml file.
Parameters:
pyprojectToml
string - The path to the pyproject.toml file.options?
PyprojectOptions - The options for the pip install command.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12')image.pipInstallFromPyproject('pyproject.toml', { optionalDependencies: ['dev'],})
pipInstallFromRequirements()
pipInstallFromRequirements(requirementsTxt: string, options?: PipInstallOptions): Image
Installs dependencies from a requirements.txt file.
Parameters:
requirementsTxt
string - The path to the requirements.txt file.options?
PipInstallOptions - The options for the pip install command.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12')image.pipInstallFromRequirements('requirements.txt', { findLinks: ['https://pypi.org/simple'],})
runCommands()
runCommands(...commands: (string | string[])[]): Image
Runs commands in the image.
Parameters:
commands
…(string | string[])[] - The commands to run.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').runCommands('echo "Hello, world!"')
workdir()
workdir(dirPath: string): Image
Sets the working directory in the image.
Parameters:
dirPath
string - The path to the working directory.
Returns:
Image
- The Image instance.
Example:
const image = Image.debianSlim('3.12').workdir('/home/daytona')
Context
Represents a context file to be added to the image.
Properties:
archivePath?
string - The path inside the archive file in object storage.sourcePath
string - The path to the source file or directory.
PipInstallOptions
Options for the pip install command.
Properties:
extraIndexUrls?
string[] - The extra index URLs to use for the pip install command.extraOptions?
string - The extra options to use for the pip install command. Given string is passed directly to the pip install command.findLinks?
string[] - The find-links to use for the pip install command.indexUrl?
string - The index URL to use for the pip install command.pre?
boolean - Whether to install pre-release versions.
Extended by
PyprojectOptions
PyprojectOptions
Options for the pip install command from a pyproject.toml file.
Properties:
extraIndexUrls?
string[] - The extra index URLs to use for the pip install command.
Inherited from
PipInstallOptions
.extraIndexUrls
extraOptions?
string - The extra options to use for the pip install command. Given string is passed directly to the pip install command.
Inherited from
PipInstallOptions
.extraOptions
findLinks?
string[] - The find-links to use for the pip install command.
Inherited from
PipInstallOptions
.findLinks
indexUrl?
string - The index URL to use for the pip install command.
Inherited from
PipInstallOptions
.indexUrl
-
optionalDependencies?
string[] - The optional dependencies to install. -
pre?
boolean - Whether to install pre-release versions.
Inherited from
PipInstallOptions
.pre
Extends:
PipInstallOptions