pub struct LocalDockerRuntime { /* private fields */ }Expand description
WorkloadRuntime implementation backed by the docker CLI.
Wraps a detected LocalRuntime and translates each WorkloadSpec into
a ContainerRunSpec before delegating to the underlying docker calls.
This is the sim-tier half of the F10 keystone: camp embeds it pointing at
OrbStack; yubaba supplies the containerd half for cloud/HA.
Translation notes:
- Only
EnvValue::Literalenv vars are forwarded;FromSecretandFromMeshvalues are skipped with a warning (no secrets infrastructure at the local tier). - Only
VolumeSource::Bindmounts are forwarded; named volumes and tmpfs are skipped with a warning. spec.commandoverrides the image CMD when set.- Mesh / WireGuard / raft fields are ignored — sim containers communicate over OrbStack’s bridge network.
Implementations§
Source§impl LocalDockerRuntime
impl LocalDockerRuntime
pub fn new(inner: LocalRuntime) -> LocalDockerRuntime
Sourcepub fn runtime(&self) -> &LocalRuntime
pub fn runtime(&self) -> &LocalRuntime
Access the underlying LocalRuntime (e.g. to call ensure_image
or list_owned directly).
Trait Implementations§
Source§impl WorkloadRuntime for LocalDockerRuntime
impl WorkloadRuntime for LocalDockerRuntime
Source§fn deploy_workload<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: &'life1 WorkloadSpec,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalDockerRuntime: 'async_trait,
fn deploy_workload<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: &'life1 WorkloadSpec,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalDockerRuntime: 'async_trait,
Deploy a workload described by
spec. Pulls the image if needed,
creates and starts the container, and returns an opaque workload ID
(typically the container name derived from spec.name). Read moreSource§fn teardown_workload<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalDockerRuntime: 'async_trait,
fn teardown_workload<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalDockerRuntime: 'async_trait,
Tear down a deployed workload — stop the process and remove all
associated state. No-op when the workload is already gone.
Source§fn is_running<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalDockerRuntime: 'async_trait,
fn is_running<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LocalDockerRuntime: 'async_trait,
Returns
true when the named workload is currently running (i.e.
the container process is alive and has not exited).Source§fn runtime_health<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
LocalDockerRuntime: 'async_trait,
fn runtime_health<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
LocalDockerRuntime: 'async_trait,
Probe the runtime backend. Returns
true when the backend socket is
reachable and healthy (e.g. docker daemon up, containerd gRPC up).
Used by health endpoints and startup checks.Auto Trait Implementations§
impl Freeze for LocalDockerRuntime
impl RefUnwindSafe for LocalDockerRuntime
impl Send for LocalDockerRuntime
impl Sync for LocalDockerRuntime
impl Unpin for LocalDockerRuntime
impl UnsafeUnpin for LocalDockerRuntime
impl UnwindSafe for LocalDockerRuntime
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> Fruit for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more