Skip to main content

ContainerRuntime

Trait ContainerRuntime 

Source
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§

Source

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).

Source

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,

Source

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,

Source

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,

Source

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".

Implementors§