Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- str_in_list() {
- str="$1"
- shift
- list="$@"
- if test "${list#*$str}" != "$list"
- then
- return 0 # $str is in $list
- else
- return 1 # $str is not in $list
- fi
- }
- # detects containers not referencing the current si-build-context image
- get_deletable_containers () {
- candidates=$(docker ps -a --filter status=created --filter name=si-build- -q)
- containers_to_retain=$(docker ps -a --filter status=created --filter name=si-build- --filter ancestor=si-build-context -q)
- for cid in ${candidates} ; do
- str_in_list ${cid} ${containers_to_retain} || printf %s\\n "$cid";
- done
- }
- # detects volumes not containing 'data' in their name
- get_deletable_volumes () {
- candidates=$(docker volume ls --filter dangling=true -q)
- # containers_to_retain=$(docker volume ls --filter dangling=true --filter name=.*data.* -q)
- containers_to_retain=()
- for cid in ${candidates} ; do
- str_in_list ${cid} ${containers_to_retain} || printf %s\\n "$cid";
- done
- }
- deletable_containers=$(get_deletable_containers)
- deletable_volumes=$(get_deletable_volumes)
- echo "deleting containers (including their anonymous volumes)..."
- docker rm -v ${deletable_containers}
- echo "deleting images..."
- docker rmi $(docker images --filter dangling=true -q)
- echo "deleting volumes..."
- docker volume rm ${deletable_volumes}
- #with TeamCity (running in Docker) spawning other builder containers
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement