diff --git a/scripts/README.md b/scripts/README.md index 2727e28170..12bc1229b8 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -294,4 +294,20 @@ Extract the i18n files from the repo and create a zip ```sh ./extract-langs.sh +``` + + +***docker-publish.sh*** + +publish doker images in the selected repository + +| Option | Description | +| --- | --- | +| -u or --username | username | +| -p or --password | password | +| -t or --tags | tags | + + +```sh +./docker-publish.sh ``` \ No newline at end of file diff --git a/scripts/docker-publish.sh b/scripts/docker-publish.sh new file mode 100755 index 0000000000..bfaaeb59fc --- /dev/null +++ b/scripts/docker-publish.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +set -e + +show_help() { + echo "Usage: docker_publish.sh" + echo "" + echo "-u or --username username docker repo" + echo "-p or --passwor password docker repo" + echo "-t or --tags tags comma separated" +} + +username_set() { + USERNAME=$1 +} + +password_set() { + PASSWORD=$1 +} + + +tags_set() { + TAGS=$1 +} + +while [[ $1 == -* ]]; do + case "$1" in + -h|--help|-\?) show_help; exit 0;; + -u|--username) username_set $2; shift 2;; + -p|--password) password_set $2; shift 2;; + -t|--tags) tags_set $2; shift 2;; + -*) echo "invalid option: $1" 1>&2; show_help; exit 1;; + esac +done + +# Tag and push image for each additional tag +for current_tag in $(echo $TAGS | sed "s/,/ /g") +do + +echo "====== PUBLISH DOCKER IMAGE TAG ${current_tag} =====" + +docker build -t alfresco/demo-shell:${current_tag} . +docker tag alfresco/demo-shell:${current_tag} alfresco/demo-shell:${current_tag} + +echo "====== LOGIN =====" +docker login -u "${USERNAME}" -p "${PASSWORD}" +docker push "alfresco/demo-shell" + +echo "====== CLEAN LOCAL IMAGE TAG ${current_tag} =====" +docker rmi -f alfresco/demo-shell:${current_tag} +done