feature(oci): use local index as resolution cache when appropriate, fixes #289 (#294)

This commit is contained in:
Alex Zenla
2024-07-31 16:05:15 -07:00
committed by GitHub
parent 902fffe207
commit 8216ab3602
9 changed files with 72 additions and 5 deletions

View File

@ -75,13 +75,23 @@ impl OciPackerService {
name: ImageName,
format: OciPackedFormat,
overwrite: bool,
pull: bool,
progress_context: OciProgressContext,
) -> Result<OciPackedImage> {
let progress = OciProgress::new();
let progress = OciBoundProgress::new(progress_context.clone(), progress);
let mut resolved = None;
if !pull && !overwrite {
resolved = self.cache.resolve(name.clone(), format).await?;
}
let fetcher =
OciImageFetcher::new(self.seed.clone(), self.platform.clone(), progress.clone());
let resolved = fetcher.resolve(name.clone()).await?;
let resolved = if let Some(resolved) = resolved {
resolved
} else {
fetcher.resolve(name.clone()).await?
};
let key = OciPackerTaskKey {
digest: resolved.digest.clone(),
format,