Skip to main content

Module image_builder

Module image_builder 

Source
Expand description

Container Image Builder for E2E Testing Containers

This module provides a builder pattern for constructing and building container images used in E2E testing scenarios. It separates the container image building logic from the container lifecycle management, following the Single Responsibility Principle.

§Design

The builder follows the standard Rust builder pattern with method chaining:

use torrust_tracker_deployer_lib::testing::e2e::containers::ContainerImageBuilder;
use std::path::PathBuf;
use std::time::Duration;

let builder = ContainerImageBuilder::new()
    .with_name("torrust-provisioned-instance")
    .with_tag("latest")
    .with_dockerfile(PathBuf::from("docker/provisioned-instance/Dockerfile"))
    .with_context(PathBuf::from("."))
    .with_build_timeout(Duration::from_secs(300));

builder.build()?;

§Error Handling

The module provides specific error types for container build operations:

  • ContainerBuildExecution - Command execution failures
  • ContainerBuildFailed - Build process failures with stderr output
  • ImageNameRequired - Image name not provided (use with_name())
  • DockerfilePathRequired - Dockerfile path not provided (use with_dockerfile())

§Required Configuration

The following must be provided before calling build():

  • Image name: Must be set with with_name()
  • Dockerfile path: Must be set with with_dockerfile()

§Default Configuration

The builder provides sensible defaults for optional parameters:

  • Tag: “latest”
  • Build context: “.” (current directory)
  • Build timeout: 300 seconds

Structs§

ContainerImageBuilder
Builder for constructing and building container images

Enums§

ContainerBuildError
Specific error types for container image building operations

Type Aliases§

Result
Result type alias for container build operations