DockerRegistry

Struct DockerRegistry 

Source
pub struct DockerRegistry { /* private fields */ }
Expand description

DockerRegistry is a client for interacting with Docker’s Registry HTTP API v2. It handles authentication, image manifest retrieval, and blob fetching.

See OCI distribution specification for more details on the manifest schema

See Docker Registry API for more details on the API

Implementations§

Source§

impl DockerRegistry

Source

pub fn get_client(&self) -> &ClientWithMiddleware

The HTTP client used to make requests to the Docker registry.

Source

pub fn get_oci_dir(&self) -> &PathBuf

The path to the OCI directory where artifacts like repositories metadata and layers are stored.

Source§

impl DockerRegistry

Source

pub fn set_client(&mut self, val: ClientWithMiddleware) -> &mut Self

The HTTP client used to make requests to the Docker registry.

Source

pub fn set_oci_dir(&mut self, val: PathBuf) -> &mut Self

The path to the OCI directory where artifacts like repositories metadata and layers are stored.

Source§

impl DockerRegistry

Creates a new instance of DockerRegistry with an HTTP client configured for retrying transient errors. This client is used to interact with the Docker Registry HTTP API.

Source

pub fn new() -> Self

Creates a new DockerRegistry instance with the default artifacts directory (MONOCORE_HOME).

Source

pub fn with_oci_dir(oci_dir: PathBuf) -> Self

Creates a new DockerRegistry instance with a custom base path.

This is useful for testing or when you need to store OCI artifacts in a different location than the default MONOCORE_HOME.

§Arguments
  • oci_dir - The base path where OCI artifacts will be stored. The OCI directory structure will be created under this path.

Trait Implementations§

Source§

impl AuthProvider for DockerRegistry

Source§

fn get_auth_material<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, repository: &'life1 str, service: &'life2 str, scopes: &'life3 [&'life4 str], ) -> Pin<Box<dyn Future<Output = MonocoreResult<Self::AuthMaterial>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Gets the necessary authentication credentials for the given repository and tag.

Currently, Docker tokens expire after 300 seconds, so we need to re-authenticate after that period or just fetch new tokens on each request.

Source§

type AuthMaterial = DockerAuthMaterial

The type of the authentication material.
Source§

impl Debug for DockerRegistry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DockerRegistry

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl OciRegistryPull for DockerRegistry

Source§

fn pull_image<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repository: &'life1 str, tag: Option<&'life2 str>, ) -> Pin<Box<dyn Future<Output = MonocoreResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Pulls an OCI image from the specified repository. This includes downloading the image manifest, fetching the image configuration, and downloading the image layers. Read more
Source§

fn fetch_index<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repository: &'life1 str, tag: Option<&'life2 str>, ) -> Pin<Box<dyn Future<Output = MonocoreResult<ImageIndex>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Fetches the image index (manifest list) for multi-platform support. Retrieves the appropriate manifest for the target platform.
Source§

fn fetch_manifest<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repository: &'life1 str, digest: &'life2 Digest, ) -> Pin<Box<dyn Future<Output = MonocoreResult<ImageManifest>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Fetches an image manifest by digest. Provides the list of layers and configurations for an image.
Source§

fn fetch_config<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repository: &'life1 str, digest: &'life2 Digest, ) -> Pin<Box<dyn Future<Output = MonocoreResult<ImageConfiguration>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Fetches the image configuration by digest. Returns metadata about the image, such as environment variables and entrypoint.
Source§

fn fetch_image_blob<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, repository: &'life1 str, digest: &'life2 Digest, range: impl 'async_trait + RangeBounds<u64> + Send, ) -> Pin<Box<dyn Future<Output = MonocoreResult<BoxStream<'static, MonocoreResult<Bytes>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Fetches a image blob from the registry by its digest. This method returns a stream for efficient processing of large blobs. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,