Skip to content

Instantly share code, notes, and snippets.

@jbw976
Created February 9, 2018 19:54
Show Gist options
  • Save jbw976/3d61b87fdc8d81df57069a20b9e188b8 to your computer and use it in GitHub Desktop.
Save jbw976/3d61b87fdc8d81df57069a20b9e188b8 to your computer and use it in GitHub Desktop.
#!/bin/bash -e
image_name_pattern=$1
if [[ -z ${image_name_pattern} ]]; then
echo "image_name_pattern required"
fi
vms="core-01 core-02"
vernum=$2
if [[ -z ${vernum} ]]; then
vernum="1"
fi
prettyname=$3
imagename=$(docker images -a | grep "${image_name_pattern}" -m 1 | awk '{print $1}')
imagetag=$(docker images -a | grep "${image_name_pattern}" -m 1 | awk '{print $2}')
imagename="${imagename}:${imagetag}"
if [[ ! -z ${prettyname} ]]; then
devimagename="${prettyname}:dev-${vernum}"
else
devimagename="${imagename%:*}:dev-${vernum}"
fi
echo "applying dev image ${devimagename} from ${imagename}"
tmpdir=$(mktemp -d)
trap "rm -fr $tmpdir" EXIT
mkdir -p $tmpdir
filename=tmp.docker
filepath=${tmpdir}/${filename}
docker save -o ${filepath} ${imagename}
for vm in ${vms} ; do vagrant scp ${filepath} $vm:~/. ; done
for vm in ${vms} ; do vagrant ssh $vm -- docker load -i ${filename}; done
for vm in ${vms} ; do vagrant ssh $vm -- docker tag ${imagename} ${devimagename}; done
echo "applied dev image ${devimagename}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment