pub enum BuildMode {
ReuseExisting,
ForceBuild,
}Expand description
Whether an image already built from the same definition satisfies a build call, or the image is built again.
Variants§
ReuseExisting
Use the already-built image when one exists; build only when none
does. Once an organization has a built image for the registry tag of
an imported registry image (ImageDefinition::oci_ref), this keeps
using the version the tag pointed to then, even if the tag has moved
since. The tags a Dockerfile’s FROM and COPY --from instructions
name (ImageDefinition::dockerfile) hold to their first-use
versions the same way.
ForceBuild
Build again even if a built image exists: the fresh build runs under
a new image ID, and this call waits for it to become ready. New
Sailboxes use the fresh image once it is ready, Sailboxes that
already exist keep the filesystem they were created with, and a
forced build that fails changes nothing. For an image imported
through a registry tag (ImageDefinition::oci_ref), a forced
build also asks the registry what the tag points at now and builds
that version. The tag then means that version for your whole
organization, while specs built earlier keep their pinned version.
For an image built from a Dockerfile
(ImageDefinition::dockerfile), a forced build looks up the tags
its FROM and COPY --from instructions name and moves those pins
for your whole organization, while specs built earlier keep the
versions their build used. If
forced builds overlap, the last-requested one that succeeds decides
which image new Sailboxes use and, for a tag, what the tag means.
Trait Implementations§
impl Copy for BuildMode
impl Eq for BuildMode
impl StructuralPartialEq for BuildMode
Auto Trait Implementations§
impl Freeze for BuildMode
impl RefUnwindSafe for BuildMode
impl Send for BuildMode
impl Sync for BuildMode
impl Unpin for BuildMode
impl UnsafeUnpin for BuildMode
impl UnwindSafe for BuildMode
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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)
&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)
&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> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request