diff --git a/frontend/dockerfile/dockerignore/dockerignore_deprecated.go b/frontend/dockerfile/dockerignore/dockerignore_deprecated.go new file mode 100644 index 000000000000..c30712bf5007 --- /dev/null +++ b/frontend/dockerfile/dockerignore/dockerignore_deprecated.go @@ -0,0 +1,14 @@ +package dockerignore + +import ( + "io" + + "github.com/moby/patternmatcher/ignorefile" +) + +// ReadAll is an alias for [ignorefile.ReadAll]. +// +// Deprecated: use [ignorefile.ReadAll] instead. +func ReadAll(reader io.Reader) ([]string, error) { + return ignorefile.ReadAll(reader) +} diff --git a/frontend/dockerfile/dockerignore/dockerignore_test.go b/frontend/dockerfile/dockerignore/dockerignore_test.go deleted file mode 100644 index 86176fdff388..000000000000 --- a/frontend/dockerfile/dockerignore/dockerignore_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package dockerignore - -import ( - "strings" - "testing" -) - -func TestReadAll(t *testing.T) { - actual, err := ReadAll(nil) - if err != nil { - t.Errorf("Expected no error, got %v", err) - } - if entries := len(actual); entries != 0 { - t.Fatalf("Expected to have zero entries, got %d", entries) - } - - const content = `test1 -/test2 -/a/file/here - -lastfile -# this is a comment -! /inverted/abs/path -! -! ` - - expected := []string{ - "test1", - "test2", // according to https://docs.docker.com/engine/reference/builder/#dockerignore-file, /foo/bar should be treated as foo/bar - "a/file/here", // according to https://docs.docker.com/engine/reference/builder/#dockerignore-file, /foo/bar should be treated as foo/bar - "lastfile", - "!inverted/abs/path", - "!", - "!", - } - - actual, err = ReadAll(strings.NewReader(content)) - if err != nil { - t.Error(err) - } - - if len(actual) != len(expected) { - t.Errorf("Expected %d entries, got %v", len(expected), len(actual)) - } - for i, expectedLine := range expected { - if i >= len(actual) { - t.Errorf(`missing line %d: expected: "%s", got none`, i+1, expectedLine) - continue - } - if actual[i] != expectedLine { - t.Errorf(`line %d: expected: "%s", got: "%s"`, i+1, expectedLine, actual[i]) - } - } -} diff --git a/frontend/dockerui/config.go b/frontend/dockerui/config.go index a83c49940b43..0ae30245ed64 100644 --- a/frontend/dockerui/config.go +++ b/frontend/dockerui/config.go @@ -15,10 +15,10 @@ import ( "github.com/moby/buildkit/client/llb" "github.com/moby/buildkit/exporter/containerimage/image" "github.com/moby/buildkit/frontend/attestations" - "github.com/moby/buildkit/frontend/dockerfile/dockerignore" "github.com/moby/buildkit/frontend/gateway/client" "github.com/moby/buildkit/solver/pb" "github.com/moby/buildkit/util/flightcontrol" + "github.com/moby/patternmatcher/ignorefile" digest "github.com/opencontainers/go-digest" ocispecs "github.com/opencontainers/image-spec/specs-go/v1" "github.com/pkg/errors" @@ -442,7 +442,7 @@ func (bc *Client) MainContext(ctx context.Context, opts ...llb.LocalOption) (*ll var excludes []string if len(bc.dockerignore) != 0 { - excludes, err = dockerignore.ReadAll(bytes.NewBuffer(bc.dockerignore)) + excludes, err = ignorefile.ReadAll(bytes.NewBuffer(bc.dockerignore)) if err != nil { return nil, errors.Wrapf(err, "failed parsing %s", bc.dockerignoreName) } diff --git a/frontend/dockerui/namedcontext.go b/frontend/dockerui/namedcontext.go index 8f004baa92bd..dd44b7d8fe89 100644 --- a/frontend/dockerui/namedcontext.go +++ b/frontend/dockerui/namedcontext.go @@ -11,9 +11,9 @@ import ( "github.com/moby/buildkit/client/llb" "github.com/moby/buildkit/exporter/containerimage/exptypes" "github.com/moby/buildkit/exporter/containerimage/image" - "github.com/moby/buildkit/frontend/dockerfile/dockerignore" "github.com/moby/buildkit/frontend/gateway/client" "github.com/moby/buildkit/util/imageutil" + "github.com/moby/patternmatcher/ignorefile" "github.com/pkg/errors" ) @@ -206,7 +206,7 @@ func (bc *Client) namedContextRecursive(ctx context.Context, name string, nameWi }) // error ignored if len(dt) != 0 { - excludes, err = dockerignore.ReadAll(bytes.NewBuffer(dt)) + excludes, err = ignorefile.ReadAll(bytes.NewBuffer(dt)) if err != nil { return nil, nil, errors.Wrapf(err, "failed parsing %s", DefaultDockerignoreName) } diff --git a/go.mod b/go.mod index 3b3cf61d5c72..8ef02dd07335 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/klauspost/compress v1.16.3 github.com/mitchellh/hashstructure/v2 v2.0.2 github.com/moby/locker v1.0.1 - github.com/moby/patternmatcher v0.5.0 + github.com/moby/patternmatcher v0.6.0 github.com/moby/sys/mountinfo v0.6.2 github.com/moby/sys/signal v0.7.0 github.com/morikuni/aec v1.0.0 diff --git a/go.sum b/go.sum index 8ebc734a67a2..b2c100ea7622 100644 --- a/go.sum +++ b/go.sum @@ -906,8 +906,8 @@ github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQ github.com/moby/buildkit v0.8.1/go.mod h1:/kyU1hKy/aYCuP39GZA9MaKioovHku57N6cqlKZIaiQ= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M7DBo= -github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/mount v0.1.0/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74= github.com/moby/sys/mount v0.1.1/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74= github.com/moby/sys/mount v0.3.3 h1:fX1SVkXFJ47XWDoeFW4Sq7PdQJnV2QIDZAqjNqgEjUs= diff --git a/frontend/dockerfile/dockerignore/dockerignore.go b/vendor/github.com/moby/patternmatcher/ignorefile/ignorefile.go similarity index 98% rename from frontend/dockerfile/dockerignore/dockerignore.go rename to vendor/github.com/moby/patternmatcher/ignorefile/ignorefile.go index 2bd9f1c9e451..94ea5a0ef550 100644 --- a/frontend/dockerfile/dockerignore/dockerignore.go +++ b/vendor/github.com/moby/patternmatcher/ignorefile/ignorefile.go @@ -1,4 +1,4 @@ -package dockerignore +package ignorefile import ( "bufio" diff --git a/vendor/modules.txt b/vendor/modules.txt index 3c221ebc8075..009c88573800 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -632,9 +632,10 @@ github.com/mitchellh/hashstructure/v2 # github.com/moby/locker v1.0.1 ## explicit; go 1.13 github.com/moby/locker -# github.com/moby/patternmatcher v0.5.0 +# github.com/moby/patternmatcher v0.6.0 ## explicit; go 1.19 github.com/moby/patternmatcher +github.com/moby/patternmatcher/ignorefile # github.com/moby/sys/mount v0.3.3 ## explicit; go 1.16 github.com/moby/sys/mount