diff --git a/Makefile b/Makefile index 192fe1c..327ae60 100644 --- a/Makefile +++ b/Makefile @@ -156,7 +156,7 @@ publish-web: build-web tag-web docker push $(docker_repo)/kopano_web:latest publish-konnect: build-konnect tag-konnect - docker push $(docker_repo)/kopano_konnect:latest + component=konnect make publish-container publish-playground: build-playground docker push $(docker_repo)/kopano_playground:latest diff --git a/setup.sh b/setup.sh index a6509b9..6290043 100755 --- a/setup.sh +++ b/setup.sh @@ -34,22 +34,69 @@ plugin_menu() { [[ "$msg" ]] && echo "$msg"; : } +docker_tag_search () { + set +e + # Display help + if [[ "${1}" == "" ]]; then + echo "Usage: docker tags repo/image" + echo " docker tags image" + return + fi + + # Full repo/image was supplied + if [[ $1 == *"/"* ]]; then + name=$1 + + # Only image was supplied, default to library/image + else + name=library/${1} + fi + #printf "Searching tags for ${name}" + + # Fetch all pages, because the only endpoint supporting pagination params + # appears to be tags/lists, but that needs authorization + results="" + i=0 + has_more=0 + while [ $has_more -eq 0 ]; do + i=$((i+1)) + result=$(curl "https://registry.hub.docker.com/v2/repositories/${name}/tags/?page=${i}" 2>/dev/null | jq -r '."results"[]["name"]' 2>/dev/null) + has_more=$? + if [[ ! -z "${result// }" ]]; then results="${results} ${result}"; fi + #printf "." + done + + echo "$results" | xargs -n1 | sort -ru | xargs +} + if [ ! -e ./.env ]; then PRINT_SETUP_SUCCESS="" echo "Creating an .env file for you" + if type jq > /dev/null; then + echo "Available tags in https://hub.docker.com/r/zokradonh/kopano_core/: $(docker_tag_search zokradonh/kopano_core)" + fi value_default=latest read -p "Which tag do you want to use for Kopano Core components? [$value_default]: " new_value CORE_VERSION=${new_value:-$value_default} + if type jq > /dev/null; then + echo "Available tags in https://hub.docker.com/r/zokradonh/kopano_webapp/: $(docker_tag_search zokradonh/kopano_webapp)" + fi value_default=latest read -p "Which tag do you want to use for Kopano WebApp? [$value_default]: " new_value WEBAPP_VERSION=${new_value:-$value_default} + if type jq > /dev/null; then + echo "Available tags in https://hub.docker.com/r/zokradonh/kopano_zpush/: $(docker_tag_search zokradonh/kopano_zpush)" + fi value_default=latest read -p "Which tag do you want to use for Z-Push? [$value_default]: " new_value ZPUSH_VERSION=${new_value:-$value_default} + if type jq > /dev/null; then + echo "Available tags in https://hub.docker.com/r/zokradonh/kopano_konnect/: $(docker_tag_search zokradonh/kopano_konnect)" + fi value_default=latest read -p "Which tag do you want to use for Kopano Konnect? [$value_default]: " new_value KONNECT_VERSION=${new_value:-$value_default}