diff --git a/cmd/compose/exec.go b/cmd/compose/exec.go index a6a8847ea..0e7456bd0 100644 --- a/cmd/compose/exec.go +++ b/cmd/compose/exec.go @@ -18,6 +18,7 @@ package compose import ( "context" + "fmt" "github.com/compose-spec/compose-go/v2/types" "github.com/docker/cli/cli" @@ -109,8 +110,8 @@ func runExec(ctx context.Context, dockerCli command.Cli, backend api.Service, op exitCode, err := backend.Exec(ctx, projectName, execOpts) if exitCode != 0 { - errMsg := "" - if err != nil { + errMsg := fmt.Sprintf("exit status %d", exitCode) + if err != nil && err.Error() != "" { errMsg = err.Error() } return cli.StatusError{StatusCode: exitCode, Status: errMsg} diff --git a/pkg/compose/exec.go b/pkg/compose/exec.go index bc4599705..a57e29e4e 100644 --- a/pkg/compose/exec.go +++ b/pkg/compose/exec.go @@ -52,7 +52,7 @@ func (s *composeService) Exec(ctx context.Context, projectName string, options a err = container.RunExec(ctx, s.dockerCli, target.ID, exec) var sterr cli.StatusError if errors.As(err, &sterr) { - return sterr.StatusCode, nil + return sterr.StatusCode, err } return 0, err }