12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/bin/bash
- #
- # docker-publish - Publish docker image to the ECR repository
- #
- # usage: docker-publish [--primary] [--aws-profile profile] [--region region] image
- #
- if [ -f pak.json ] ; then
- VERSION=$(pak --dir . edit version)
- else
- VERSION=$(pak --dir .. edit version)
- fi
- while [[ $# -gt 0 ]] ; do
- arg="$1"
- case ${arg} in
- --aws-profile)
- AWS_PROFILE=${2}
- shift ; shift
- ;;
- --primary)
- PRIMARY=${2}
- shift ; shift
- ;;
- --region)
- AWS_DEFAULT_REGION=${2}
- shift ; shift
- ;;
- --version)
- VERSION=${2}
- shift ; shift
- ;;
- *)
- break
- ;;
- esac
- done
- IMAGE=${1}
- if [ "${IMAGE}" = "" -o "${AWS_DEFAULT_REGION}" = "" ] ; then
- echo "usage: docker-publish [--primary] [--aws-profile profile] [--region region] image"
- exit 255
- fi
- . $(dirname ${BASH_SOURCE[0]})/common
- . $(dirname ${BASH_SOURCE[0]})/docker-login
- echo "Docker login for ${AWS_PROFILE} at ${AWS_DEFAULT_REGION}"
- URI=$(dockerLogin)
- IMAGE_PATH=${URI}/${IMAGE}
- echo "Tagging image: docker tag ${IMAGE} ${IMAGE_PATH}:${VERSION}"
- docker tag ${IMAGE} ${IMAGE_PATH}:${VERSION}
- if [ $? != 0 ] ; then
- echo "Cannot tag ${IMAGE} as ${IMAGE_PATH}:${VERSION}"
- exit 1
- fi
- echo "Pushing: docker push ${IMAGE_PATH}:${VERSION}"
- docker push ${IMAGE_PATH}:${VERSION} | egrep -v 'Layer already exists|Waiting|Preparing|Pushed|digest:'
- if [ $? != 0 ] ; then
- echo "Cannot push ${IMAGE}:${VERSION}"
- exit 1
- fi
- if [ "${PRIMARY}" != "" ] ; then
- echo "Tagging current: docker tag ${IMAGE} ${IMAGE_PATH}:current"
- docker tag ${IMAGE} ${IMAGE_PATH}:current
- if [ $? != 0 ] ; then
- echo "Cannot tag ${IMAGE}:current"
- exit 1
- fi
- echo "Pushing: docker push ${IMAGE_PATH}:current"
- docker push ${IMAGE_PATH}:current | egrep -v 'Layer already exists|Waiting|Preparing'
- if [ $? != 0 ] ; then
- echo "Cannot push ${IMAGE_PATH}:current"
- exit 1
- fi
- # docker rmi -f ${IMAGE_PATH}:${VERSION}
- else
- echo "Not pushing to ${IMAGE}:current"
- fi
- dockerLogout
|