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 failuresContainerBuildFailed- Build process failures with stderr outputImageNameRequired- Image name not provided (usewith_name())DockerfilePathRequired- Dockerfile path not provided (usewith_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§
- Container
Image Builder - Builder for constructing and building container images
Enums§
- Container
Build Error - Specific error types for container image building operations
Type Aliases§
- Result
- Result type alias for container build operations