pub trait ContainerRuntime {
// Required methods
fn run_container<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'life8, 'life9, 'life10, 'life11, 'async_trait>(
&'life0 self,
image: &'life1 str,
cmd: &'life2 [&'life3 str],
env_vars: &'life4 [(&'life5 str, &'life6 str)],
working_dir: &'life7 Path,
volumes: &'life8 [(&'life9 Path, &'life10 Path)],
entrypoint: Option<&'life11 str>,
) -> Pin<Box<dyn Future<Output = Result<ContainerOutput, ContainerError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait,
'life8: 'async_trait,
'life9: 'async_trait,
'life10: 'async_trait,
'life11: 'async_trait;
fn pull_image<'life0, 'life1, 'async_trait>(
&'life0 self,
image: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ContainerError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn build_image<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
dockerfile: &'life1 Path,
tag: &'life2 str,
context_dir: &'life3 Path,
) -> Pin<Box<dyn Future<Output = Result<(), ContainerError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn prepare_language_environment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
language: &'life1 str,
version: Option<&'life2 str>,
additional_packages: Option<Vec<String>>,
) -> Pin<Box<dyn Future<Output = Result<String, ContainerError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn image_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
tag: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, ContainerError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Required Methods§
Sourcefn run_container<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'life8, 'life9, 'life10, 'life11, 'async_trait>(
&'life0 self,
image: &'life1 str,
cmd: &'life2 [&'life3 str],
env_vars: &'life4 [(&'life5 str, &'life6 str)],
working_dir: &'life7 Path,
volumes: &'life8 [(&'life9 Path, &'life10 Path)],
entrypoint: Option<&'life11 str>,
) -> Pin<Box<dyn Future<Output = Result<ContainerOutput, ContainerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait,
'life8: 'async_trait,
'life9: 'async_trait,
'life10: 'async_trait,
'life11: 'async_trait,
fn run_container<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'life8, 'life9, 'life10, 'life11, 'async_trait>(
&'life0 self,
image: &'life1 str,
cmd: &'life2 [&'life3 str],
env_vars: &'life4 [(&'life5 str, &'life6 str)],
working_dir: &'life7 Path,
volumes: &'life8 [(&'life9 Path, &'life10 Path)],
entrypoint: Option<&'life11 str>,
) -> Pin<Box<dyn Future<Output = Result<ContainerOutput, ContainerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait,
'life8: 'async_trait,
'life9: 'async_trait,
'life10: 'async_trait,
'life11: 'async_trait,
Run a command inside a container.
If cmd is empty (&[]), the container runs with the image’s built-in
ENTRYPOINT/CMD. This is used for Docker-type GitHub Actions whose
entrypoint is baked into the image.
entrypoint optionally overrides the image’s ENTRYPOINT (used when an
action.yml declares runs.entrypoint).
fn pull_image<'life0, 'life1, 'async_trait>(
&'life0 self,
image: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ContainerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn build_image<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
dockerfile: &'life1 Path,
tag: &'life2 str,
context_dir: &'life3 Path,
) -> Pin<Box<dyn Future<Output = Result<(), ContainerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn prepare_language_environment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
language: &'life1 str,
version: Option<&'life2 str>,
additional_packages: Option<Vec<String>>,
) -> Pin<Box<dyn Future<Output = Result<String, ContainerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Sourcefn image_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
tag: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, ContainerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn image_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
tag: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, ContainerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Check whether a Docker/OCI image exists locally.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".