Advertisement
Guest User

Untitled

a guest
Aug 26th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. str_in_list() {
  4. str="$1"
  5. shift
  6. list="$@"
  7. if test "${list#*$str}" != "$list"
  8. then
  9. return 0 # $str is in $list
  10. else
  11. return 1 # $str is not in $list
  12. fi
  13. }
  14.  
  15. # detects containers not referencing the current si-build-context image
  16. get_deletable_containers () {
  17. candidates=$(docker ps -a --filter status=created --filter name=si-build- -q)
  18. containers_to_retain=$(docker ps -a --filter status=created --filter name=si-build- --filter ancestor=si-build-context -q)
  19.  
  20. for cid in ${candidates} ; do
  21. str_in_list ${cid} ${containers_to_retain} || printf %s\\n "$cid";
  22. done
  23. }
  24.  
  25. # detects volumes not containing 'data' in their name
  26. get_deletable_volumes () {
  27. candidates=$(docker volume ls --filter dangling=true -q)
  28. # containers_to_retain=$(docker volume ls --filter dangling=true --filter name=.*data.* -q)
  29. containers_to_retain=()
  30.  
  31. for cid in ${candidates} ; do
  32. str_in_list ${cid} ${containers_to_retain} || printf %s\\n "$cid";
  33. done
  34. }
  35.  
  36. deletable_containers=$(get_deletable_containers)
  37.  
  38. deletable_volumes=$(get_deletable_volumes)
  39.  
  40. echo "deleting containers (including their anonymous volumes)..."
  41. docker rm -v ${deletable_containers}
  42.  
  43. echo "deleting images..."
  44. docker rmi $(docker images --filter dangling=true -q)
  45.  
  46. echo "deleting volumes..."
  47. docker volume rm ${deletable_volumes}
  48.  
  49. #with TeamCity (running in Docker) spawning other builder containers
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement