1
0
Эх сурвалжийг харах

Merge pull request #1497 from docker/windows_mount

don't use filepath to process remote bind paths
Nicolas De loof 4 жил өмнө
parent
commit
84fcdee8df
1 өөрчлөгдсөн 11 нэмэгдсэн , 8 устгасан
  1. 11 8
      local/compose/create.go

+ 11 - 8
local/compose/create.go

@@ -618,9 +618,9 @@ func buildContainerConfigMounts(p types.Project, s types.ServiceConfig) ([]mount
 	for _, config := range s.Configs {
 		target := config.Target
 		if config.Target == "" {
-			target = filepath.Join(configsBaseDir, config.Source)
-		} else if !filepath.IsAbs(config.Target) {
-			target = filepath.Join(configsBaseDir, config.Target)
+			target = configsBaseDir + config.Source
+		} else if !isUnixAbs(config.Target) {
+			target = configsBaseDir + config.Target
 		}
 
 		definedConfig := p.Configs[config.Source]
@@ -649,13 +649,13 @@ func buildContainerConfigMounts(p types.Project, s types.ServiceConfig) ([]mount
 func buildContainerSecretMounts(p types.Project, s types.ServiceConfig) ([]mount.Mount, error) {
 	var mounts = map[string]mount.Mount{}
 
-	secretsDir := "/run/secrets"
+	secretsDir := "/run/secrets/"
 	for _, secret := range s.Secrets {
 		target := secret.Target
 		if secret.Target == "" {
-			target = filepath.Join(secretsDir, secret.Source)
-		} else if !filepath.IsAbs(secret.Target) {
-			target = filepath.Join(secretsDir, secret.Target)
+			target = secretsDir + secret.Source
+		} else if !isUnixAbs(secret.Target) {
+			target = secretsDir + secret.Target
 		}
 
 		definedSecret := p.Secrets[secret.Source]
@@ -681,6 +681,10 @@ func buildContainerSecretMounts(p types.Project, s types.ServiceConfig) ([]mount
 	return values, nil
 }
 
+func isUnixAbs(path string) bool {
+	return strings.HasPrefix(path, "/")
+}
+
 func buildMount(project types.Project, volume types.ServiceVolumeConfig) (mount.Mount, error) {
 	source := volume.Source
 	if volume.Type == types.VolumeTypeBind && !filepath.IsAbs(source) {
@@ -699,7 +703,6 @@ func buildMount(project types.Project, volume types.ServiceVolumeConfig) (mount.
 				source = pVolume.Name
 			}
 		}
-
 	}
 
 	return mount.Mount{