mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-18 00:47:48 +08:00
Merge pull request #1740 from jedevc/resolve-paths-context-dockerfile
build: avoid resolution of dockerfile if context is remote
This commit is contained in:
commit
48b733d6da
@ -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…
x
Reference in New Issue
Block a user