Merge pull request #1740 from jedevc/resolve-paths-context-dockerfile

build: avoid resolution of dockerfile if context is remote
pull/1745/head
Justin Chadwell 2 years ago committed by GitHub
commit 48b733d6da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -722,8 +722,10 @@ func dockerUlimitToControllerUlimit(u *dockeropts.UlimitOpt) *controllerapi.Ulim
// resolvePaths resolves all paths contained in controllerapi.BuildOptions
// and replaces them to absolute paths.
func resolvePaths(options *controllerapi.BuildOptions) (_ *controllerapi.BuildOptions, err error) {
localContext := false
if options.ContextPath != "" && options.ContextPath != "-" {
if !build.IsRemoteURL(options.ContextPath) {
localContext = true
options.ContextPath, err = filepath.Abs(options.ContextPath)
if err != nil {
return nil, err
@ -731,13 +733,14 @@ func resolvePaths(options *controllerapi.BuildOptions) (_ *controllerapi.BuildOp
}
}
if options.DockerfileName != "" && options.DockerfileName != "-" {
if !urlutil.IsURL(options.DockerfileName) {
if localContext && !urlutil.IsURL(options.DockerfileName) {
options.DockerfileName, err = filepath.Abs(options.DockerfileName)
if err != nil {
return nil, err
}
}
}
var contexts map[string]string
for k, v := range options.NamedContexts {
if build.IsRemoteURL(v) || strings.HasPrefix(v, "docker-image://") {

@ -42,13 +42,18 @@ func TestResolvePaths(t *testing.T) {
},
{
name: "dockerfilename",
options: controllerapi.BuildOptions{DockerfileName: "test"},
want: controllerapi.BuildOptions{DockerfileName: filepath.Join(tmpwd, "test")},
options: controllerapi.BuildOptions{DockerfileName: "test", ContextPath: "."},
want: controllerapi.BuildOptions{DockerfileName: filepath.Join(tmpwd, "test"), ContextPath: tmpwd},
},
{
name: "dockerfilename-dash",
options: controllerapi.BuildOptions{DockerfileName: "-"},
want: controllerapi.BuildOptions{DockerfileName: "-"},
options: controllerapi.BuildOptions{DockerfileName: "-", ContextPath: "."},
want: controllerapi.BuildOptions{DockerfileName: "-", ContextPath: tmpwd},
},
{
name: "dockerfilename-remote",
options: controllerapi.BuildOptions{DockerfileName: "test", ContextPath: "git@github.com:docker/buildx.git"},
want: controllerapi.BuildOptions{DockerfileName: "test", ContextPath: "git@github.com:docker/buildx.git"},
},
{
name: "contexts",

Loading…
Cancel
Save