From 22e1901581bd039bea0d3499a9347e8742e2f2b9 Mon Sep 17 00:00:00 2001 From: Justin Chadwell Date: Tue, 9 May 2023 17:15:44 +0100 Subject: [PATCH] bake: reorganize input creation together Signed-off-by: Justin Chadwell --- bake/bake.go | 49 ++++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/bake/bake.go b/bake/bake.go index d9145d9f..6168f155 100644 --- a/bake/bake.go +++ b/bake/bake.go @@ -1027,11 +1027,34 @@ func toBuildOpt(t *Target, inp *Input) (*build.Options, error) { if t.Dockerfile != nil { dockerfilePath = *t.Dockerfile } - if !build.IsRemoteURL(contextPath) && !path.IsAbs(dockerfilePath) { dockerfilePath = path.Join(contextPath, dockerfilePath) } + bi := build.Inputs{ + ContextPath: contextPath, + DockerfilePath: dockerfilePath, + NamedContexts: toNamedContexts(t.Contexts), + } + if t.DockerfileInline != nil { + bi.DockerfileInline = *t.DockerfileInline + } + updateContext(&bi, inp) + if strings.HasPrefix(bi.ContextPath, "cwd://") { + bi.ContextPath = path.Clean(strings.TrimPrefix(bi.ContextPath, "cwd://")) + } + for k, v := range bi.NamedContexts { + if strings.HasPrefix(v.Path, "cwd://") { + bi.NamedContexts[k] = build.NamedContext{Path: path.Clean(strings.TrimPrefix(v.Path, "cwd://"))} + } + } + + if err := validateContextsEntitlements(bi, inp); err != nil { + return nil, err + } + + t.Context = &bi.ContextPath + args := map[string]string{} for k, v := range t.Args { if v == nil { @@ -1061,30 +1084,6 @@ func toBuildOpt(t *Target, inp *Input) (*build.Options, error) { networkMode = *t.NetworkMode } - bi := build.Inputs{ - ContextPath: contextPath, - DockerfilePath: dockerfilePath, - NamedContexts: toNamedContexts(t.Contexts), - } - if t.DockerfileInline != nil { - bi.DockerfileInline = *t.DockerfileInline - } - updateContext(&bi, inp) - if strings.HasPrefix(bi.ContextPath, "cwd://") { - bi.ContextPath = path.Clean(strings.TrimPrefix(bi.ContextPath, "cwd://")) - } - for k, v := range bi.NamedContexts { - if strings.HasPrefix(v.Path, "cwd://") { - bi.NamedContexts[k] = build.NamedContext{Path: path.Clean(strings.TrimPrefix(v.Path, "cwd://"))} - } - } - - if err := validateContextsEntitlements(bi, inp); err != nil { - return nil, err - } - - t.Context = &bi.ContextPath - bo := &build.Options{ Inputs: bi, Tags: t.Tags,