[][src]Struct bandsocks::Container

pub struct Container {
    pub stdin: Option<UnixStream>,
    pub stdout: Option<UnixStream>,
    pub stderr: Option<UnixStream>,
    // some fields omitted
}

A running container

Roughly analogous to std::process::Child, but for a sandbox container.

Fields

stdin: Option<UnixStream>stdout: Option<UnixStream>stderr: Option<UnixStream>

Implementations

impl Container[src]

pub fn new(image: Arc<Image>) -> Result<ContainerBuilder, ImageError>[src]

Prepare to run a new container, starting with an Image loaded

pub async fn pull<'_>(
    name: &'_ ImageName
) -> Result<ContainerBuilder, ImageError>
[src]

Prepare to run a new container, starting with an ImageName referencing a repository server.

This is equivalent to using RegistryClient::pull() followed by Container::new(), which as an alternative allows using custom settings for RegistryClient.

pub async fn wait(self) -> Result<ExitStatus, RuntimeError>[src]

Wait for the container to finish running, if necessary, and return its exit status.

pub async fn interact(self) -> Result<ExitStatus, RuntimeError>[src]

Wait for the container to finish running, while connecting it to stdio

Any stdio streams which haven't been taken from the Container or overridden with ContainerBuilder will be forwarded to/from their real equivalents until the container exits.

If stdin is available to forward, we will use a separate thread for the blocking stdin reads. This thread may continue running after the container itself exits, since std's stdin reads cannot be cancelled.

pub async fn output(self) -> Result<Output, RuntimeError>[src]

Capture the container's output and wait for it to finish

This will capture stderr and stdout if they have not been taken from the Container or overridden with ContainerBuilder.

If stdin has not been taken or overridden, it will be dropped.

Trait Implementations

impl Debug for Container[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,