- Wrap parse errors in errdefs.InvalidParameters
- Include dockerfile in error names
Signed-off-by: Natasha Jarus <linuxmercedes@gmail.com>
| ... | ... |
@@ -12,6 +12,7 @@ import ( |
| 12 | 12 |
"github.com/docker/docker/api/types/backend" |
| 13 | 13 |
"github.com/docker/docker/builder" |
| 14 | 14 |
"github.com/docker/docker/builder/dockerignore" |
| 15 |
+ "github.com/docker/docker/errdefs" |
|
| 15 | 16 |
"github.com/docker/docker/pkg/fileutils" |
| 16 | 17 |
"github.com/docker/docker/pkg/urlutil" |
| 17 | 18 |
"github.com/moby/buildkit/frontend/dockerfile/parser" |
| ... | ... |
@@ -34,8 +35,9 @@ func Detect(config backend.BuildConfig) (remote builder.Source, dockerfile *pars |
| 34 | 34 |
case remoteURL == ClientSessionRemote: |
| 35 | 35 |
res, err := parser.Parse(config.Source) |
| 36 | 36 |
if err != nil {
|
| 37 |
- return nil, nil, err |
|
| 37 |
+ return nil, nil, errdefs.InvalidParameter(err) |
|
| 38 | 38 |
} |
| 39 |
+ |
|
| 39 | 40 |
return nil, res, nil |
| 40 | 41 |
case urlutil.IsGitURL(remoteURL): |
| 41 | 42 |
remote, dockerfile, err = newGitRemote(remoteURL, dockerfilePath) |
| ... | ... |
@@ -106,7 +108,7 @@ func newURLRemote(url string, dockerfilePath string, progressReader func(in io.R |
| 106 | 106 |
switch contentType {
|
| 107 | 107 |
case mimeTypes.TextPlain: |
| 108 | 108 |
res, err := parser.Parse(progressReader(content)) |
| 109 |
- return nil, res, err |
|
| 109 |
+ return nil, res, errdefs.InvalidParameter(err) |
|
| 110 | 110 |
default: |
| 111 | 111 |
source, err := FromArchive(progressReader(content)) |
| 112 | 112 |
if err != nil {
|
| ... | ... |
@@ -146,11 +148,17 @@ func readAndParseDockerfile(name string, rc io.Reader) (*parser.Result, error) {
|
| 146 | 146 |
br := bufio.NewReader(rc) |
| 147 | 147 |
if _, err := br.Peek(1); err != nil {
|
| 148 | 148 |
if err == io.EOF {
|
| 149 |
- return nil, errors.Errorf("the Dockerfile (%s) cannot be empty", name)
|
|
| 149 |
+ return nil, errdefs.InvalidParameter(errors.Errorf("the Dockerfile (%s) cannot be empty", name))
|
|
| 150 | 150 |
} |
| 151 | 151 |
return nil, errors.Wrap(err, "unexpected error reading Dockerfile") |
| 152 | 152 |
} |
| 153 |
- return parser.Parse(br) |
|
| 153 |
+ |
|
| 154 |
+ dockerfile, err := parser.Parse(br) |
|
| 155 |
+ if err != nil {
|
|
| 156 |
+ return nil, errdefs.InvalidParameter(errors.Wrapf(err, "failed to parse %s", name)) |
|
| 157 |
+ } |
|
| 158 |
+ |
|
| 159 |
+ return dockerfile, nil |
|
| 154 | 160 |
} |
| 155 | 161 |
|
| 156 | 162 |
func openAt(remote builder.Source, path string) (driver.File, error) {
|