diff --git a/local/compose/exec.go b/local/compose/exec.go index 57996e106..068b5b3c6 100644 --- a/local/compose/exec.go +++ b/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,