From 77385aa5f3f0a6be6077842564b4ccf7c26ae0f8 Mon Sep 17 00:00:00 2001 From: moelsayed Date: Fri, 27 Apr 2018 20:38:59 +0200 Subject: [PATCH] Make sure to clean up interrupted updates. --- docker/docker.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docker/docker.go b/docker/docker.go index cbbfffe4..b8e04dc4 100644 --- a/docker/docker.go +++ b/docker/docker.go @@ -253,14 +253,24 @@ func InspectContainer(ctx context.Context, dClient *client.Client, hostname stri } func StopRenameContainer(ctx context.Context, dClient *client.Client, hostname string, oldContainerName string, newContainerName string) error { + // make sure we don't have an old old-container from a previous broken update + exists, err := IsContainerRunning(ctx, dClient, hostname, newContainerName, true) + if err != nil { + return err + } + if exists { + if err := RemoveContainer(ctx, dClient, hostname, newContainerName); err != nil { + return err + } + } if err := StopContainer(ctx, dClient, hostname, oldContainerName); err != nil { return err } if err := WaitForContainer(ctx, dClient, hostname, oldContainerName); err != nil { return nil } - err := RenameContainer(ctx, dClient, hostname, oldContainerName, newContainerName) - return err + return RenameContainer(ctx, dClient, hostname, oldContainerName, newContainerName) + } func WaitForContainer(ctx context.Context, dClient *client.Client, hostname string, containerName string) error {