Merge pull request #200 from jingxiaolu/inspect_image

docker-container: check local image store if pulling image failed
pull/203/head
Tõnis Tiigi 5 years ago committed by GitHub
commit aa21e3c731
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -57,7 +57,7 @@ func (d *Driver) create(ctx context.Context, l progress.SubLogger) error {
if d.image != "" { if d.image != "" {
imageName = d.image imageName = d.image
} }
env := d.env
if err := l.Wrap("pulling image "+imageName, func() error { if err := l.Wrap("pulling image "+imageName, func() error {
rc, err := d.DockerAPI.ImageCreate(ctx, imageName, types.ImageCreateOptions{}) rc, err := d.DockerAPI.ImageCreate(ctx, imageName, types.ImageCreateOptions{})
if err != nil { if err != nil {
@ -66,12 +66,18 @@ func (d *Driver) create(ctx context.Context, l progress.SubLogger) error {
_, err = io.Copy(ioutil.Discard, rc) _, err = io.Copy(ioutil.Discard, rc)
return err return err
}); err != nil { }); err != nil {
return err // image pulling failed, check if it exists in local image store.
// if not, return pulling error. otherwise log it.
_, _, errInspect := d.DockerAPI.ImageInspectWithRaw(ctx, imageName)
if errInspect != nil {
return err
}
l.Wrap("pulling failed, using local image "+imageName, func() error { return nil })
} }
cfg := &container.Config{ cfg := &container.Config{
Image: imageName, Image: imageName,
Env: env, Env: d.env,
} }
if d.InitConfig.BuildkitFlags != nil { if d.InitConfig.BuildkitFlags != nil {
cfg.Cmd = d.InitConfig.BuildkitFlags cfg.Cmd = d.InitConfig.BuildkitFlags

Loading…
Cancel
Save