From 5e4f7e915ebec279f20329bba5701a7b8d8dfe32 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Fri, 14 Sep 2018 22:25:08 -0400 Subject: Vendor in latest projectatomic/buildah Buildah Fixes to COPY and ADD to properly follow symbolic links is SRC is a symbolic link Print out a digest message on successful push. We should not drop the Bounding set when running as a non priv user in podman build Signed-off-by: Daniel J Walsh Closes: #1483 Approved by: rhatdan --- vendor/github.com/projectatomic/buildah/new.go | 31 +++++++++++++++++--------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'vendor/github.com/projectatomic/buildah/new.go') diff --git a/vendor/github.com/projectatomic/buildah/new.go b/vendor/github.com/projectatomic/buildah/new.go index 1abb2f1f1..0eb8d8e42 100644 --- a/vendor/github.com/projectatomic/buildah/new.go +++ b/vendor/github.com/projectatomic/buildah/new.go @@ -12,6 +12,7 @@ import ( "github.com/containers/image/transports/alltransports" "github.com/containers/image/types" "github.com/containers/storage" + multierror "github.com/hashicorp/go-multierror" "github.com/opencontainers/selinux/go-selinux" "github.com/opencontainers/selinux/go-selinux/label" "github.com/openshift/imagebuilder" @@ -144,6 +145,7 @@ func resolveImage(ctx context.Context, systemContext *types.SystemContext, store if err != nil { return nil, nil, errors.Wrapf(err, "error parsing reference to image %q", options.FromImage) } + var pullErrors *multierror.Error for _, image := range images { var err error if len(image) >= minimumTruncatedIDLength { @@ -158,6 +160,7 @@ func resolveImage(ctx context.Context, systemContext *types.SystemContext, store if options.PullPolicy == PullAlways { pulledImg, pulledReference, err := pullAndFindImage(ctx, store, image, options, systemContext) if err != nil { + pullErrors = multierror.Append(pullErrors, err) logrus.Debugf("unable to pull and read image %q: %v", image, err) continue } @@ -169,6 +172,7 @@ func resolveImage(ctx context.Context, systemContext *types.SystemContext, store srcRef, err := alltransports.ParseImageName(image) if err != nil { if options.Transport == "" { + pullErrors = multierror.Append(pullErrors, err) logrus.Debugf("error parsing image name %q: %v", image, err) continue } @@ -178,6 +182,7 @@ func resolveImage(ctx context.Context, systemContext *types.SystemContext, store } srcRef2, err := alltransports.ParseImageName(transport + image) if err != nil { + pullErrors = multierror.Append(pullErrors, err) logrus.Debugf("error parsing image name %q: %v", image, err) continue } @@ -199,11 +204,13 @@ func resolveImage(ctx context.Context, systemContext *types.SystemContext, store img, err = is.Transport.GetStoreImage(store, ref) if err != nil { if errors.Cause(err) == storage.ErrImageUnknown && options.PullPolicy != PullIfMissing { + pullErrors = multierror.Append(pullErrors, err) logrus.Debugf("no such image %q: %v", transports.ImageName(ref), err) continue } pulledImg, pulledReference, err := pullAndFindImage(ctx, store, image, options, systemContext) if err != nil { + pullErrors = multierror.Append(pullErrors, err) logrus.Debugf("unable to pull and read image %q: %v", image, err) continue } @@ -212,6 +219,11 @@ func resolveImage(ctx context.Context, systemContext *types.SystemContext, store } break } + + if img == nil && pullErrors != nil { + return nil, nil, pullErrors + } + return ref, img, nil } @@ -262,26 +274,23 @@ func newBuilder(ctx context.Context, store storage.Store, options BuilderOptions if options.Container != "" { name = options.Container } else { - var err2 error if image != "" { name = imageNamePrefix(image) + "-" + name } - suffix := 1 - tmpName := name - for errors.Cause(err2) != storage.ErrContainerUnknown { - _, err2 = store.Container(tmpName) - if err2 == nil { - suffix++ - tmpName = fmt.Sprintf("%s-%d", name, suffix) - } - } - name = tmpName } coptions := storage.ContainerOptions{} coptions.IDMappingOptions = newContainerIDMappingOptions(options.IDMappingOptions) container, err := store.CreateContainer("", []string{name}, imageID, "", "", &coptions) + suffix := 1 + for err != nil && errors.Cause(err) == storage.ErrDuplicateName && options.Container == "" { + suffix++ + tmpName := fmt.Sprintf("%s-%d", name, suffix) + if container, err = store.CreateContainer("", []string{tmpName}, imageID, "", "", &coptions); err == nil { + name = tmpName + } + } if err != nil { return nil, errors.Wrapf(err, "error creating container") } -- cgit v1.2.3-54-g00ecf