From 2bf7ebf219fe9bba4bf4f6418e8c17601a588c88 Mon Sep 17 00:00:00 2001 From: Martin Honermeyer Date: Sat, 2 Jan 2016 20:01:59 +0100 Subject: [PATCH] Clean out untagged Docker images after build --- main.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/main.go b/main.go index 3abc89e..8b2426d 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "fmt" "io/ioutil" "os" @@ -228,6 +229,29 @@ func main() { } } + // Remove untagged images, if any + var outbuf bytes.Buffer + cmd = exec.Command("sh", "-c", "docker images | grep '^' | awk '{print $3}'") + cmd.Stdout = &outbuf + cmd.Stderr = os.Stderr + trace(cmd) + err = cmd.Run() + if err != nil { + os.Exit(1) + } + + if outbuf.Len() > 0 { + images := strings.Split(strings.TrimSpace(outbuf.String()), "\n") + cmd = exec.Command("docker", append([]string{"rmi"}, images...)...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + trace(cmd) + err := cmd.Run() + if err != nil { + os.Exit(1) + } + } + // Save to tarred image repository if len(vargs.Save.File) != 0 { // if the destination directory does not exist, create it