Skip to content

Instantly share code, notes, and snippets.

@jmervine
Last active August 29, 2015 14:17
Show Gist options
  • Save jmervine/6713d10ab05fecd6e1aa to your computer and use it in GitHub Desktop.
Save jmervine/6713d10ab05fecd6e1aa to your computer and use it in GitHub Desktop.
#############################################################
# Function -- Boot2Docker
#############################################################
if test "$(which boot2docker 2> /dev/null)"; then
function docker_shellinit {
local _shellinit="$(boot2docker shellinit)"
eval "$(echo ${_shellinit})"
echo "${_shellinit}" > ~/.boot2dockerrc
}
function docker_reup {
echo "+ running vpn fix"
docker_down
echo "+ resetting vbox route"
local _iface="$(VBoxManage showvminfo boot2docker-vm --machinereadable | grep hostonlyadapter | cut -d '"' -f 2)"
echo "++ sudo route -n add -net 192.168.59.0/24 -interface ${_iface}"
sudo route -n add -net 192.168.59.0/24 -interface ${_iface} && \
docker_up
}
function docker_reset {
echo "+ clearing docker variables"
unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY
docker_shellinit
}
function docker_up {
echo "+ starting boot2docker"
boot2docker up
b2dSTATUS=$?
docker_reset
return $b2dSTATUS
}
function docker_down {
echo "+ stopping boot2docker"
boot2docker down
return 0
}
function docker_clean {
echo "+ clean containers"
docker ps -a | grep 'Exited ' | awk '{ print $NF }' | xargs docker rm
docker ps -a | grep -v 'Up ' | awk '{ print $NF }' | xargs docker rm
echo "+ clean images"
docker images | grep '^<none>' | awk '{ print $3 }' | xargs docker rmi
}
function b2d {
case "$@" in
reload)
docker_reset
return 0;;
reset|fix|reup|fuck)
docker_reup
return $?;;
up)
docker_up
return $?;;
down)
docker_down
return $?;;
clean)
docker_clean
return $?;;
esac
boot2docker $@
}
docker_exec="$(which docker)"
function docker {
case "$@" in
reload)
docker_reset
return 0;;
reset|fix|reup|fuck)
docker_reup
return $?;;
up)
docker_up
return $?;;
down)
docker_down
return $?;;
clean)
docker_clean
return $?;;
esac
$docker_exec $@
}
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment