From 52e73d7a8a9e5a899fec498bdfb3f7833821caf9 Mon Sep 17 00:00:00 2001 From: Fabrizio Steiner Date: Wed, 12 Apr 2017 08:40:01 +0200 Subject: [PATCH] Do not initiate a RemoveContainer for containers which have AutoRemove (--rm) active. fixes GH-71 --- container/client.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/container/client.go b/container/client.go index 5055e7a..fb94071 100644 --- a/container/client.go +++ b/container/client.go @@ -101,10 +101,14 @@ func (client dockerClient) StopContainer(c Container, timeout time.Duration) err // Wait for container to exit, but proceed anyway after the timeout elapses client.waitForStop(c, timeout) - log.Debugf("Removing container %s", c.ID()) + if c.containerInfo.HostConfig.AutoRemove { + log.Debugf("AutoRemove container %s, skipping ContainerRemove call.", c.ID()) + } else { + log.Debugf("Removing container %s", c.ID()) - if err := client.api.ContainerRemove(bg, c.ID(), types.ContainerRemoveOptions{Force: true, RemoveVolumes: false}); err != nil { - return err + if err := client.api.ContainerRemove(bg, c.ID(), types.ContainerRemoveOptions{Force: true, RemoveVolumes: false}); err != nil { + return err + } } // Wait for container to be removed. In this case an error is a good thing