X Tutup
Skip to content

Commit 2bc9f49

Browse files
committed
Retry image creation after update not found
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
1 parent 28caf90 commit 2bc9f49

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

client.go

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -345,19 +345,26 @@ func (c *Client) Pull(ctx context.Context, ref string, opts ...RemoteOpt) (Image
345345
}
346346

347347
is := c.ImageService()
348-
if created, err := is.Create(ctx, imgrec); err != nil {
349-
if !errdefs.IsAlreadyExists(err) {
350-
return nil, err
351-
}
348+
for {
349+
if created, err := is.Create(ctx, imgrec); err != nil {
350+
if !errdefs.IsAlreadyExists(err) {
351+
return nil, err
352+
}
352353

353-
updated, err := is.Update(ctx, imgrec)
354-
if err != nil {
355-
return nil, err
356-
}
354+
updated, err := is.Update(ctx, imgrec)
355+
if err != nil {
356+
// if image was removed, try create again
357+
if errdefs.IsNotFound(err) {
358+
continue
359+
}
360+
return nil, err
361+
}
357362

358-
imgrec = updated
359-
} else {
360-
imgrec = created
363+
imgrec = updated
364+
} else {
365+
imgrec = created
366+
}
367+
break
361368
}
362369

363370
img := &image{

0 commit comments

Comments
 (0)
X Tutup