mirror of https://github.com/docker/compose.git
Merge pull request #10819 from ndeloof/windows_abs
check secret target is an absolute windows path
This commit is contained in:
commit
3b2f3cdce3
|
@ -863,7 +863,7 @@ func buildContainerConfigMounts(p types.Project, s types.ServiceConfig) ([]mount
|
||||||
target := config.Target
|
target := config.Target
|
||||||
if config.Target == "" {
|
if config.Target == "" {
|
||||||
target = configsBaseDir + config.Source
|
target = configsBaseDir + config.Source
|
||||||
} else if !isUnixAbs(config.Target) {
|
} else if !isAbsTarget(config.Target) {
|
||||||
target = configsBaseDir + config.Target
|
target = configsBaseDir + config.Target
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -898,7 +898,7 @@ func buildContainerSecretMounts(p types.Project, s types.ServiceConfig) ([]mount
|
||||||
target := secret.Target
|
target := secret.Target
|
||||||
if secret.Target == "" {
|
if secret.Target == "" {
|
||||||
target = secretsDir + secret.Source
|
target = secretsDir + secret.Source
|
||||||
} else if !isUnixAbs(secret.Target) {
|
} else if !isAbsTarget(secret.Target) {
|
||||||
target = secretsDir + secret.Target
|
target = secretsDir + secret.Target
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -929,10 +929,24 @@ func buildContainerSecretMounts(p types.Project, s types.ServiceConfig) ([]mount
|
||||||
return values, nil
|
return values, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isAbsTarget(p string) bool {
|
||||||
|
return isUnixAbs(p) || isWindowsAbs(p)
|
||||||
|
}
|
||||||
|
|
||||||
func isUnixAbs(p string) bool {
|
func isUnixAbs(p string) bool {
|
||||||
return strings.HasPrefix(p, "/")
|
return strings.HasPrefix(p, "/")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isWindowsAbs(p string) bool {
|
||||||
|
if strings.HasPrefix(p, "\\\\") {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if len(p) > 2 && p[1] == ':' {
|
||||||
|
return p[2] == '\\'
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func buildMount(project types.Project, volume types.ServiceVolumeConfig) (mount.Mount, error) {
|
func buildMount(project types.Project, volume types.ServiceVolumeConfig) (mount.Mount, error) {
|
||||||
source := volume.Source
|
source := volume.Source
|
||||||
// on windows, filepath.IsAbs(source) is false for unix style abs path like /var/run/docker.sock.
|
// on windows, filepath.IsAbs(source) is false for unix style abs path like /var/run/docker.sock.
|
||||||
|
|
|
@ -66,7 +66,7 @@ func createTar(env string, config types.ServiceSecretConfig) (bytes.Buffer, erro
|
||||||
target := config.Target
|
target := config.Target
|
||||||
if config.Target == "" {
|
if config.Target == "" {
|
||||||
target = "/run/secrets/" + config.Source
|
target = "/run/secrets/" + config.Source
|
||||||
} else if !isUnixAbs(config.Target) {
|
} else if !isAbsTarget(config.Target) {
|
||||||
target = "/run/secrets/" + config.Target
|
target = "/run/secrets/" + config.Target
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue