Skip to content

Instantly share code, notes, and snippets.

@mimizone
Last active April 25, 2019 20:28
Show Gist options
  • Save mimizone/f0620e5d2ca1d1ab7b4334e9aeac520f to your computer and use it in GitHub Desktop.
Save mimizone/f0620e5d2ca1d1ab7b4334e9aeac520f to your computer and use it in GitHub Desktop.
simple backup/upgrade rancher
#!/bin/bash
CONTAINERNAME=rancher-server
NEWVERSION=v2.2.0
CURRENTVERSION=`docker inspect ${CONTAINERNAME} | jq --raw-output '.[]."Config"."Image"' | awk -F ':' '{print $2}'`
DATE=`date +%Y-%m-%d-%H-%M-%S`
function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
if ! version_gt $NEWVERSION $CURRENTVERSION; then
echo "No upgrade necessary to ${NEWVERSION}, current version is ${CURRENTVERSION}"
exit
fi
echo Upgrading ${CONTAINERNAME} from ${CURRENTVERSION} to ${NEWVERSION}
docker pull rancher/rancher:$NEWVERSION
# STOP container
docker stop $CONTAINERNAME && docker container rename $CONTAINERNAME $CONTAINERNAME-$CURRENTVERSION-$DATE
# BACKUP
docker run --volumes-from rancher-data -v $PWD:/backup alpine tar zcvf /backup/rancher-data-backup-$CURRENTVERSION-$DATE.tar.gz /var/lib/rancher
# RUN new version
docker run -d --volumes-from rancher-data --restart=unless-stopped -p 80:80 -p 443:443 --name $CONTAINERNAME rancher/rancher:$NEWVERSION
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment