pub struct DriverConfig { /* private fields */ }Expand description
Driver configuration.
This is the basic set of configuration options needed to spawn the container for a given driver.
Implementations§
Source§impl DriverConfig
impl DriverConfig
pub async fn millstone(config: MillstoneConfig) -> Result<Self, GenericError>
pub async fn datadog_intake( config: DatadogIntakeConfig, ) -> Result<Self, GenericError>
pub async fn target( target_id: &'static str, config: TargetConfig, ) -> Result<Self, GenericError>
Sourcepub fn from_image(driver_id: &'static str, image: String) -> Self
pub fn from_image(driver_id: &'static str, image: String) -> Self
Creates a new DriverConfig from the given driver identifier and container image reference.
Sourcepub fn with_entrypoint(self, entrypoint: Vec<String>) -> Self
pub fn with_entrypoint(self, entrypoint: Vec<String>) -> Self
Sets the entrypoint for the container.
If entrypoint is empty, the default entrypoint will be used.
Sourcepub fn with_command(self, command: Vec<String>) -> Self
pub fn with_command(self, command: Vec<String>) -> Self
Sets the command for the container.
If command is empty, the default command will be used.
Sourcepub fn with_env_var<K, V>(self, key: K, value: V) -> Self
pub fn with_env_var<K, V>(self, key: K, value: V) -> Self
Adds an environment variable to the container.
Sourcepub fn with_env_vars(self, env: Vec<String>) -> Self
pub fn with_env_vars(self, env: Vec<String>) -> Self
Adds environment variables to the container.
Sourcepub fn with_bind_mount<HP, CP>(self, host_path: HP, container_path: CP) -> Self
pub fn with_bind_mount<HP, CP>(self, host_path: HP, container_path: CP) -> Self
Adds a bind mount to the container.
host_path represents the path on the host to mount, while container_path represents the path on the
container side to mount it to. Bind mounts can be either files or directories.
Sourcepub fn with_readonly_bind_mount<HP, CP>(
self,
host_path: HP,
container_path: CP,
) -> Self
pub fn with_readonly_bind_mount<HP, CP>( self, host_path: HP, container_path: CP, ) -> Self
Adds a read-only bind mount to the container.
Same as with_bind_mount but the container can’t modify the mounted path.
Sourcepub fn with_healthcheck(
self,
test_command: Vec<String>,
interval: Duration,
timeout: Duration,
retries: i64,
start_period: Duration,
start_interval: Duration,
) -> Self
pub fn with_healthcheck( self, test_command: Vec<String>, interval: Duration, timeout: Duration, retries: i64, start_period: Duration, start_interval: Duration, ) -> Self
Sets the healthcheck for the container.
Sourcepub fn with_network_alias(self, alias: impl Into<String>) -> Self
pub fn with_network_alias(self, alias: impl Into<String>) -> Self
Adds a DNS alias for this container on its primary network.
Other containers on the same network can resolve this container by alias in addition to
its hostname. Call this before the container is started.
Sourcepub fn with_network(self, network: impl Into<String>) -> Self
pub fn with_network(self, network: impl Into<String>) -> Self
Connects this container to an additional Docker network after creation.
The primary network is always the container’s isolation group network. Each network added
here is joined via docker network connect after the container is created but before it
is started, so the container is reachable on all listed networks from the moment it runs.
Sourcepub fn with_volume_mount(
self,
volume_name: impl Into<String>,
container_path: impl AsRef<Path>,
) -> Self
pub fn with_volume_mount( self, volume_name: impl Into<String>, container_path: impl AsRef<Path>, ) -> Self
Mounts a named Docker volume into the container at the given path.
Unlike with_bind_mount, this references a named Docker volume
rather than a host filesystem path. The volume must already exist when the container starts.
This is useful for mounting volumes that belong to other isolation groups: for example,
a shared millstone container that needs to reach the DogStatsD sockets of both the baseline
and comparison agent containers.
Sourcepub fn with_exposed_port(
self,
protocol: &'static str,
internal_port: u16,
) -> Self
pub fn with_exposed_port( self, protocol: &'static str, internal_port: u16, ) -> Self
Adds an exposed port to the container.
Exposed ports are ports mapped from inside the container to an ephemeral port on the host. The protocol should
be either tcp or udp. A port on the host side is picked from the “local” port range. For example, on Linux
the range is defined by /proc/sys/net/ipv4/ip_local_port_range.
When starting the driver via Driver::start, the ephemeral port mappings will
be returned in DriverDetails.
Trait Implementations§
Source§impl Clone for DriverConfig
impl Clone for DriverConfig
Source§fn clone(&self) -> DriverConfig
fn clone(&self) -> DriverConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more