Skip to content

Commit

Permalink
Introduce cleanup-after-build.sh to clean all docker volumes generate…
Browse files Browse the repository at this point in the history
…d during rpm building
  • Loading branch information
ingvagabund committed Aug 31, 2017
1 parent 665899f commit 9e329c4
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 2 deletions.
8 changes: 8 additions & 0 deletions hack/cleanup-after-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

# This script cleans up resources allocated during image building

source "$(dirname "${BASH_SOURCE}")/lib/init.sh"

# delete all docker volumes used to build images to free space
os::cleanup::buildvolumes
6 changes: 4 additions & 2 deletions hack/lib/build/environment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -230,8 +230,10 @@ function os::build::environment::run() {
local volume
local tmp_volume

volume="$( os::build::environment::volume_name "origin-build" "${commit}" "${OS_BUILD_ENV_REUSE_VOLUME:-}" )"
tmp_volume="$( os::build::environment::volume_name "origin-build-tmp" "${commit}" "${OS_BUILD_ENV_REUSE_TMP_VOLUME:-}" )"
export OS_BUILD_ENV_VOLUME_PREFIX="origin-build"

volume="$( os::build::environment::volume_name "${OS_BUILD_ENV_VOLUME_PREFIX}" "${commit}" "${OS_BUILD_ENV_REUSE_VOLUME:-}" )"
tmp_volume="$( os::build::environment::volume_name "${OS_BUILD_ENV_VOLUME_PREFIX}-tmp" "${commit}" "${OS_BUILD_ENV_REUSE_TMP_VOLUME:-}" )"

export OS_BUILD_ENV_VOLUME="${volume}"
export OS_BUILD_ENV_TMP_VOLUME="${tmp_volume}"
Expand Down
41 changes: 41 additions & 0 deletions hack/lib/cleanup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,44 @@ function os::cleanup::processes() {
done
}
readonly -f os::cleanup::processes

# os::cleanup::docker::volumes clens all docker volumes with a given prefix.
#
# Globals:
# None
# Arguments:
# - 1: docker volume prefix
# Returns:
# None
function os::cleanup::docker::volumes() {
local prefix=${1}
local volumes="$(docker volume ls -q | grep ${prefix})"
echo $volumes
if [[ "${volumes}" != "" ]]; then
docker volume rm ${volumes}
fi
}
readonly -f os::cleanup::docker::volumes

# os::cleanup::buildvolumes clens all volumes with origin-build prefix
#
# Globals:
# None
# Arguments:
# None
# Returns:
# None
function os::cleanup::buildvolumes() {
local result=1
if os::util::find::system_binary 'imagebuilder' >/dev/null; then
os::log::warning "volumes cleaning not implemented for imagebuilder"
result=0
else
os::log::warning "Unable to locate 'imagebuilder' on PATH, falling back to Docker"
if os::cleanup::docker::volumes "origin-build"; then
result=0
fi
fi

return "${result}"
}

0 comments on commit 9e329c4

Please sign in to comment.