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

Merge pull request #1682 from ndeloof/exec_env

define exec env by merging service env with command line --env
Nicolas De loof 4 жил өмнө
parent
commit
ccaa1754d4
1 өөрчлөгдсөн 10 нэмэгдсэн , 1 устгасан
  1. 10 1
      local/compose/exec.go

+ 10 - 1
local/compose/exec.go

@@ -49,9 +49,18 @@ func (s *composeService) Exec(ctx context.Context, project *types.Project, opts
 	}
 	container := containers[0]
 
+	var env []string
+	projectEnv := types.NewMappingWithEquals(opts.Environment).Resolve(func(s string) (string, bool) {
+		v, ok := project.Environment[s]
+		return v, ok
+	})
+	for k, v := range service.Environment.OverrideBy(projectEnv) {
+		env = append(env, fmt.Sprintf("%s=%s", k, *v))
+	}
+
 	exec, err := s.apiClient.ContainerExecCreate(ctx, container.ID, apitypes.ExecConfig{
 		Cmd:        opts.Command,
-		Env:        opts.Environment,
+		Env:        env,
 		User:       opts.User,
 		Privileged: opts.Privileged,
 		Tty:        opts.Tty,