Skip to content

Commit c9e070f

Browse files
authored
fix: return correct exit code with --exit-code-from (docker#11715)
1 parent b3792dd commit c9e070f

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

pkg/compose/printer.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,11 @@ func (p *printer) Run(cascade api.Cascade, exitCodeFrom string, stopFn func() er
138138
if cascade == api.CascadeStop && exitCodeFrom == "" {
139139
exitCodeFrom = event.Service
140140
}
141-
if exitCodeFrom == event.Service {
142-
exitCode = event.ExitCode
143-
}
141+
}
142+
143+
if exitCodeFrom == event.Service && (event.Type == api.ContainerEventExit || event.Type == api.ContainerEventStopped) {
144+
// Container was interrupted or exited, let's capture exit code
145+
exitCode = event.ExitCode
144146
}
145147
if len(containers) == 0 {
146148
// Last container terminated, done

pkg/compose/start.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ func (s *composeService) watchContainers(ctx context.Context, //nolint:gocyclo
268268
Container: name,
269269
ID: container.ID,
270270
Service: service,
271+
ExitCode: inspected.State.ExitCode,
271272
})
272273
}
273274

0 commit comments

Comments
 (0)