From dfda91baea963794a85e6fa07711e28bdde6f5f2 Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Tue, 12 Apr 2016 20:49:55 +0300 Subject: [PATCH] - Create seperate scripts for upgrading and cleanup of Docker images and Vagrant boxes (WIP). - Removed docker function, replaces by specific sciprts. --- .bashrc | 14 -------------- Documents/Shore/cleanup/docker-clean | 4 ++++ Documents/Shore/cleanup/docker-update | 10 ++++++++++ Documents/Shore/cleanup/vagrant-clean | 20 ++++++++++++++++++++ Documents/Shore/cleanup/vagrant-update | 5 +++++ 5 files changed, 39 insertions(+), 14 deletions(-) create mode 100755 Documents/Shore/cleanup/docker-clean create mode 100755 Documents/Shore/cleanup/docker-update create mode 100755 Documents/Shore/cleanup/vagrant-clean create mode 100755 Documents/Shore/cleanup/vagrant-update diff --git a/.bashrc b/.bashrc index f16fae6..e68114d 100644 --- a/.bashrc +++ b/.bashrc @@ -66,18 +66,4 @@ gen-csr () { openssl req -new -newkey rsa:4096 -nodes -out $1.csr -keyout $1.key } -docker () { - local docker_exec="$(which docker)" - case "$1" in - clean) - $docker_exec rm $(docker ps --quiet --filter=status=exited) - $docker_exec rm $(docker ps --quiet --filter=status=created) - $docker_exec rmi $(docker images --quiet --filter=dangling=true) - ;; - *) - $docker_exec $@ - ;; - esac -} - . $HOME/Documents/Shore/bundle_certs/bundle_certs diff --git a/Documents/Shore/cleanup/docker-clean b/Documents/Shore/cleanup/docker-clean new file mode 100755 index 0000000..5e209f1 --- /dev/null +++ b/Documents/Shore/cleanup/docker-clean @@ -0,0 +1,4 @@ +#!/bin/sh -e +docker rm $(docker ps --quiet --filter=status=exited) +docker rm $(docker ps --quiet --filter=status=created) +docker rmi $(docker images --quiet --filter=dangling=true) diff --git a/Documents/Shore/cleanup/docker-update b/Documents/Shore/cleanup/docker-update new file mode 100755 index 0000000..935af38 --- /dev/null +++ b/Documents/Shore/cleanup/docker-update @@ -0,0 +1,10 @@ +#!/usr/bin/env python + +from sh import docker +from parse import parse + +for line in docker.images(): + image = parse("{REPOSITORY:^} {TAG:^} {ID:^} {CREATED:^} {SIZE:^}", + line).named + if image.TAG == "latest": + docker.pull(image.REPOSITORY) diff --git a/Documents/Shore/cleanup/vagrant-clean b/Documents/Shore/cleanup/vagrant-clean new file mode 100755 index 0000000..71411a0 --- /dev/null +++ b/Documents/Shore/cleanup/vagrant-clean @@ -0,0 +1,20 @@ +#!/usr/bin/env python + +from sh import vagrant +from parse import parse + +boxes = {} +for line in vagrant.box("list"): + box = parse("{name:^} ({provider}, {version}", line) + if box.name not in boxes: + boxes[box.name] = {box.provider: [box.version]} + elif box.provider not in boxes[box.name]: + boxes[box.name][box.provider] = [box.version] + else: + boxes[box.name][box.provider].append(box.version) + +for box in boxes.keys(): + for provider in boxes[box].keys(): + for version in boxes[box][provider][:-1]: # Save the latest version. + vagrant.box('remove', '--provider', provider, '--box-version', + version) diff --git a/Documents/Shore/cleanup/vagrant-update b/Documents/Shore/cleanup/vagrant-update new file mode 100755 index 0000000..1856485 --- /dev/null +++ b/Documents/Shore/cleanup/vagrant-update @@ -0,0 +1,5 @@ +#!/bin/sh -e +for box in $(vagrant box list | awk '{print $1}') +do + vagrant box add $box --provider virtualbox +done -- GitLab