Merge pull request #1633 from wangyumu/add-buildkit-syntax-build-arg

build-arg add support BUILDKIT_SYNTAX
v0.8
Tõnis Tiigi 2020-08-24 16:26:21 -07:00 committed by GitHub
commit 898d720788
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 2 deletions

View File

@ -53,6 +53,7 @@ const (
keyNameDockerfile = "dockerfilekey" keyNameDockerfile = "dockerfilekey"
keyContextSubDir = "contextsubdir" keyContextSubDir = "contextsubdir"
keyContextKeepGitDir = "build-arg:BUILDKIT_CONTEXT_KEEP_GIT_DIR" keyContextKeepGitDir = "build-arg:BUILDKIT_CONTEXT_KEEP_GIT_DIR"
keySyntax = "build-arg:BUILDKIT_SYNTAX"
) )
var httpPrefix = regexp.MustCompile(`^https?://`) var httpPrefix = regexp.MustCompile(`^https?://`)
@ -317,8 +318,14 @@ func Build(ctx context.Context, c client.Client) (*client.Result, error) {
} }
if _, ok := opts["cmdline"]; !ok { if _, ok := opts["cmdline"]; !ok {
ref, cmdline, loc, ok := dockerfile2llb.DetectSyntax(bytes.NewBuffer(dtDockerfile)) if cmdline, ok := opts[keySyntax]; ok {
if ok { p := strings.SplitN(strings.TrimSpace(cmdline), " ", 2)
res, err := forwardGateway(ctx, c, p[0], cmdline)
if err != nil && len(errdefs.Sources(err)) == 0 {
return nil, errors.Wrapf(err, "failed with %s = %s", keySyntax, cmdline)
}
return res, err
} else if ref, cmdline, loc, ok := dockerfile2llb.DetectSyntax(bytes.NewBuffer(dtDockerfile)); ok {
res, err := forwardGateway(ctx, c, ref, cmdline) res, err := forwardGateway(ctx, c, ref, cmdline)
if err != nil && len(errdefs.Sources(err)) == 0 { if err != nil && len(errdefs.Sources(err)) == 0 {
return nil, wrapSource(err, sourceMap, loc) return nil, wrapSource(err, sourceMap, loc)