Last active
December 30, 2015 23:39
-
-
Save rjeczalik/7901859 to your computer and use it in GitHub Desktop.
script for (re)starting Docker vm with Gitlab/CI containers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
[[ -z "${DOCKER_HOME}" ]] && { | |
DOCKER_HOME=${HOME}/vagrant/docker | |
} | |
die() { | |
[[ ! -z "${*}" ]] && { | |
echo "error: ${*}" | |
} | |
exit 1 | |
} | |
run=( | |
"docker run -p 80:80 -p 222:22 -d -v /home/vagrant/gitlab:/srv/gitlab rjeczalik/gitlab" | |
"docker run -p 9000:9000 -d -e GITLAB_URLS=\"http://docker:80\" gitlab-ci" | |
"docker run -d gitlab-ci-runner" | |
) | |
restart() { | |
cd "${DOCKER_HOME}" && { | |
vagrant halt | |
vagrant up | |
} | |
} | |
hard_restart() { | |
cd "${DOCKER_HOME}" && { | |
vagrant status 2>&1 | grep 'is running' &>/dev/null && { | |
vagrant halt || die "failed to stop docker vm" | |
} | |
vagrant up || die "failed to start docker vm" | |
for c in $(vagrant ssh -c "docker ps -q"); do | |
vagrant ssh -c "docker stop ${c}" || die "failed to stop ${c} container" | |
done | |
local latest=$(vagrant ssh -c "docker ps | grep 'gitlab-ci:' | tail -n1 | cut -d' ' -f1 2>/dev/null" 2>/dev/null) | |
[[ ! -z "${latest}" ]] && { | |
vagrant ssh -c "docker commit -run='{\"Cmd\": [\"bin/sh\", \"-c\", \"/home/gitlab_ci/gitlab-ci/gitlabci_ctrl.rb --start\"]}' ${latest} gitlab-ci" | |
} || { | |
die "failed to commit gitlab-ci" | |
} | |
for i in ${!run[@]}; do | |
vagrant ssh -c "${run[${i}]}" || die "failed to execute \"${run[${i}]}\"" | |
done | |
} | |
} | |
[[ "${1}" == "--hard" ]] && { | |
hard_restart | |
} || { | |
restart | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment