Clean Docker images after builds 79/49579/1
authorJose Lausuch <jalausuch@suse.com>
Wed, 13 Dec 2017 14:51:23 +0000 (15:51 +0100)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sat, 23 Dec 2017 14:09:07 +0000 (15:09 +0100)
Compared to the related Releng script, it only focuses on cleaning
images. It's considered out of scope to remove remaining docker
containers.

It doesn't force to remove images because base images (e.g. Alpine)
could be selected by other OPNFV projects too. It ensures O is
returned even if one image cannot be removed.

functest-core is removed at the end because all Functest containers
depend on it.

The script works well in a nominal building env. Any remaining
Functest images or containers must be removed by hand.

Conflicts:
    build.sh

JIRA: FUNCTEST-898

Co-Authored-By: Cédric Ollivier <cedric.ollivier@orange.com>
Change-Id: I72d8214b711680ec7958af1d427b23dee6337bf6
Signed-off-by: Jose Lausuch <jalausuch@suse.com>
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit 98a942469134fcc3f91b6658a6fbb256d9d89518)

build.sh

index c509a73..ff582f1 100644 (file)
--- a/build.sh
+++ b/build.sh
@@ -20,7 +20,9 @@ find . -name Dockerfile -exec sed -i -e "s|opnfv/functest-core:euphrates|${repo}
 for dir in ${amd64_dirs}; do
     (cd "${dir}" && docker build "${build_opts[@]}" -t "${repo}/functest-${dir##**/}:amd64-euphrates" .)
     docker push "${repo}/functest-${dir##**/}:amd64-euphrates"
+    [ "${dir}" != "docker/core" ] && docker rmi "${repo}/functest-${dir##**/}:amd64-euphrates" || true
 done
+docker rmi "${repo}/functest-core:amd64-euphrates" alpine:3.6 || true
 find . -name Dockerfile -exec git checkout {} +
 
 find . -name Dockerfile -exec sed -i -e "s|alpine:3.6|multiarch/alpine:arm64-v3.6|g" {} +
@@ -28,7 +30,9 @@ find . -name Dockerfile -exec sed -i -e "s|opnfv/functest-core:euphrates|${repo}
 for dir in ${arm64_dirs}; do
     (cd "${dir}" && docker build "${build_opts[@]}" -t "${repo}/functest-${dir##**/}:arm64-euphrates" .)
     docker push "${repo}/functest-${dir##**/}:arm64-euphrates"
+    [ "${dir}" != "docker/core" ] && docker rmi "${repo}/functest-${dir##**/}:arm64-euphrates" || true
 done
+docker rmi "${repo}/functest-core:arm64-euphrates" multiarch/alpine:arm64-v3.6 || true
 find . -name Dockerfile -exec git checkout {} +
 
 exit $?