mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fix postRunProcessing behavior during docker build
If Windows updates are being applied via a RUN command in a docker build, the build will not stop if there was a failure in postRunProcessing. To enable this behavior, we explicitly set the exit code of the container to a failure if postRunProcessing fails during servicing container step. For completeness, also avoid running servicing operation if the original exit code of the container is non-zero so that original failure exit code does not get overwritten. Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
This commit is contained in:
parent
afc3cb03f4
commit
2266e7f234
1 changed files with 2 additions and 1 deletions
|
@ -16,7 +16,7 @@ func platformConstructExitStatus(e libcontainerd.StateInfo) *container.ExitStatu
|
|||
|
||||
// postRunProcessing perfoms any processing needed on the container after it has stopped.
|
||||
func (daemon *Daemon) postRunProcessing(container *container.Container, e libcontainerd.StateInfo) error {
|
||||
if e.UpdatePending {
|
||||
if e.ExitCode == 0 && e.UpdatePending {
|
||||
spec, err := daemon.createSpec(container)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -29,6 +29,7 @@ func (daemon *Daemon) postRunProcessing(container *container.Container, e libcon
|
|||
// Create a new servicing container, which will start, complete the update, and merge back the
|
||||
// results if it succeeded, all as part of the below function call.
|
||||
if err := daemon.containerd.Create((container.ID + "_servicing"), *spec, servicingOption); err != nil {
|
||||
container.ExitCode = -1
|
||||
return fmt.Errorf("Post-run update servicing failed: %s", err)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue