diff --git a/builder/sources/image_containerd_client.go b/builder/sources/image_containerd_client.go index cc57c17bd..fe24e75d9 100644 --- a/builder/sources/image_containerd_client.go +++ b/builder/sources/image_containerd_client.go @@ -158,10 +158,17 @@ func (c *containerdImageCliImpl) ImagePull(image string, username, password stri logrus.Errorf("HTTPS pull failed for image %s, trying HTTP", reference) printLog(logger, "warn", fmt.Sprintf("HTTPS pull failed for image %s, trying HTTP", reference), map[string]string{"step": "pullimage"}) hostOpt.DefaultScheme = "http" + opts := []containerd.RemoteOpt{ + containerd.WithImageHandler(h), + containerd.WithSchema1Conversion, //lint:ignore SA1019 nerdctl should support schema1 as well. + containerd.WithPlatformMatcher(platformMC), + } + options = docker.ResolverOptions{ Tracker: Tracker, Hosts: config.ConfigureHosts(pctx, hostOpt), } + opts = append(opts, containerd.WithResolver(docker.NewResolver(options))) logrus.Infof("try again http") img, err = c.client.Pull(pctx, reference, opts...) }