pub struct DockerRuntime { /* private fields */ }Expand description
Docker container runtime backed by the bollard crate.
Connects to the local Docker daemon using the platform default transport (Unix socket on Linux and macOS, named pipe on Windows).
Implementations§
Source§impl DockerRuntime
impl DockerRuntime
Sourcepub fn from_client(client: Docker) -> Self
pub fn from_client(client: Docker) -> Self
Wrap an existing bollard::Docker client. Useful for tests that
supply a pre-configured client (custom transport, mock, etc.).
Sourcepub async fn list_managed(&self, project: &str) -> Result<Vec<ManagedContainer>>
pub async fn list_managed(&self, project: &str) -> Result<Vec<ManagedContainer>>
List every container labelled with lightshuttle.project=<project>,
including stopped ones. Used by the CLI to implement ps and
down without relying on in-memory state.
Trait Implementations§
Source§impl ContainerRuntime for DockerRuntime
impl ContainerRuntime for DockerRuntime
Source§async fn start(&self, spec: &ContainerSpec) -> Result<ContainerId>
async fn start(&self, spec: &ContainerSpec) -> Result<ContainerId>
Start a container according to
spec. Pulls the image if not
already present locally.Source§async fn stop(&self, id: &ContainerId, grace: Duration) -> Result<()>
async fn stop(&self, id: &ContainerId, grace: Duration) -> Result<()>
Stop a container, sending
SIGTERM and then SIGKILL after
grace. Idempotent: stopping an already stopped container is a
no-op.Source§async fn remove(&self, name: &str) -> Result<()>
async fn remove(&self, name: &str) -> Result<()>
Remove a container by name, forcing removal even if it is still
running. Idempotent: removing a container that does not exist is a
no-op. Named volumes are preserved. Read more
Source§async fn inspect(&self, id: &ContainerId) -> Result<ContainerStatus>
async fn inspect(&self, id: &ContainerId) -> Result<ContainerStatus>
Report the current status of a container.
Source§async fn wait_healthy(&self, id: &ContainerId, timeout: Duration) -> Result<()>
async fn wait_healthy(&self, id: &ContainerId, timeout: Duration) -> Result<()>
Block until the container reports a healthy status or
timeout
elapses. Returns crate::RuntimeError::Timeout in the latter
case.Source§async fn logs(&self, id: &ContainerId, follow: bool) -> Result<LogChunkStream>
async fn logs(&self, id: &ContainerId, follow: bool) -> Result<LogChunkStream>
Stream logs from a container. When
follow is true the stream
stays open and emits new chunks as they arrive; when false the
stream completes after the existing logs are drained.Auto Trait Implementations§
impl !RefUnwindSafe for DockerRuntime
impl !UnwindSafe for DockerRuntime
impl Freeze for DockerRuntime
impl Send for DockerRuntime
impl Sync for DockerRuntime
impl Unpin for DockerRuntime
impl UnsafeUnpin for DockerRuntime
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more