Declarative image builder used to define Sandbox runtime environments.
Use factory methods such as #base(String) or #debianSlim(String) and chain
mutating methods to append Dockerfile instructions.
Local files and directories added with #addLocalFile(String, String) and
#addLocalDir(String, String) are uploaded to Daytona object storage as build contexts
when the image is used to create a snapshot or a Sandbox.
Methods
Section titled “Methods”base()
Section titled “base()”public static Image base(String baseImage)Creates an image definition from an existing base image.
Parameters:
baseImageString - base image reference (for examplepython:3.12-slim-bookworm)
Returns:
Image- newImageinitialized with aFROMinstruction
debianSlim()
Section titled “debianSlim()”public static Image debianSlim(String pythonVersion)Creates a Python Debian slim image.
Parameters:
pythonVersionString - Python version to use; defaults to3.11whennullor empty
Returns:
Image- newImageusing a Python slim base image
pipInstall()
Section titled “pipInstall()”public Image pipInstall(String... packages)Adds a pip install instruction for one or more packages.
Parameters:
packagesString… - package names to install
Returns:
Image- thisImagefor method chaining
runCommands()
Section titled “runCommands()”public Image runCommands(String... commands)Adds one or more RUN instructions.
Parameters:
commandsString… - shell commands to execute during image build
Returns:
Image- thisImagefor method chaining
public Image env(Map<String, String> envVars)Adds environment variables using ENV instructions.
Parameters:
envVarsMap<String, String> - environment variables to set in the image
Returns:
Image- thisImagefor method chaining
workdir()
Section titled “workdir()”public Image workdir(String path)Sets the default working directory using a WORKDIR instruction.
Parameters:
pathString - working directory path
Returns:
Image- thisImagefor method chaining
entrypoint()
Section titled “entrypoint()”public Image entrypoint(String... commands)Sets the container entrypoint.
Parameters:
commandsString… - entrypoint command and arguments
Returns:
Image- thisImagefor method chaining
public Image cmd(String... commands)Sets the default container command.
Parameters:
commandsString… - default command and arguments
Returns:
Image- thisImagefor method chaining
addLocalFile()
Section titled “addLocalFile()”public Image addLocalFile(String localPath, String remotePath)Adds a local file to the image.
The file is uploaded to Daytona object storage as part of the build context when the image
is used to create a snapshot or a Sandbox, and copied to remotePath with a
COPY instruction. If remotePath ends with /, the local file name is
appended to it. Symlinks in localPath are resolved before the file is recorded.
Image image = Image.debianSlim("3.12").addLocalFile("requirements.txt", "/home/daytona/requirements.txt");Parameters:
localPathString - path to the local file; a leading~is expanded to the user homeremotePathString - destination path inside the image
Returns:
Image- thisImagefor method chaining
Throws:
DaytonaNotFoundException- iflocalPathdoes not existIllegalArgumentException- iflocalPathexists but is not a regular file
addLocalDir()
Section titled “addLocalDir()”public Image addLocalDir(String localPath, String remotePath)Adds a local directory to the image.
The directory is uploaded to Daytona object storage as part of the build context when the
image is used to create a snapshot or a Sandbox, and copied to remotePath with a
COPY instruction. Symlinks in localPath itself are resolved; symlinks inside
the directory are preserved as symlinks in the build context.
Image image = Image.debianSlim("3.12").addLocalDir("src", "/home/daytona/src");Parameters:
localPathString - path to the local directory; a leading~is expanded to the user homeremotePathString - destination path inside the image
Returns:
Image- thisImagefor method chaining
Throws:
DaytonaNotFoundException- iflocalPathdoes not existIllegalArgumentException- iflocalPathexists but is not a directory, or is a filesystem root
getDockerfile()
Section titled “getDockerfile()”public String getDockerfile()Returns generated Dockerfile content.
Returns:
String- Dockerfile text assembled by this builder
getContexts()
Section titled “getContexts()”public List<Context> getContexts()Returns the local build contexts registered with #addLocalFile(String, String) and
#addLocalDir(String, String), in insertion order.
Returns:
List\<Context\>- unmodifiable list of build contexts