diff --git a/scripts/custom-docker-build b/scripts/custom-docker-build index 064749b..70fc86e 100755 --- a/scripts/custom-docker-build +++ b/scripts/custom-docker-build @@ -260,7 +260,7 @@ function parse_arguments() { CUSTOM_IMAGE_NAME=debian CUSTOM_IMAGE_VERSION=buster - for tool in "${TOOLS[@]}"; do + for tool in "${PATH_TOOLS[@]}" "${TAG_TOOLS[@]}"; do if [ -n "${!tool}" ]; then version="${!tool}" case "$tool" in @@ -302,15 +302,16 @@ function generate_command() { } function build_custom_if_needed() { - build_image_name=$(get_image_name) - echo "Building image $build_image_name" - full_image_name="$CI_REGISTRY_IMAGE:$build_image_name" + build_image_path=$(get_image_path) + build_image_tag=$(get_image_tag) + echo "Building image $build_image_tag" + full_image_name="$build_image_path:$build_image_tag" docker_command=$(generate_command $@ --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from="$full_image_name" -t "$full_image_name") echo "Docker command:" printf "\t%s" "$docker_command" eval $docker_command - printf "\n\nSUCCESS - Successfully built:\n\t%s" "$build_image_name" + printf "\n\nSUCCESS - Successfully built:\n\t%s" "$build_image_tag" } build_custom_if_needed $@ diff --git a/scripts/custom-docker-push b/scripts/custom-docker-push index 37dd870..c92db85 100755 --- a/scripts/custom-docker-push +++ b/scripts/custom-docker-push @@ -6,9 +6,10 @@ SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$SCRIPT_DIR/lib/custom-docker.sh" function custom_push() { - build_image_name=$(get_image_name) - echo "Pushing image $build_image_name" - full_image_name="$CI_REGISTRY_IMAGE:$build_image_name" + build_image_path=$(get_image_path) + build_image_tag=$(get_image_tag) + echo "Pushing image $build_image_path:$build_image_tag" + full_image_name="$build_image_path:$build_image_tag" docker push "$full_image_name" diff --git a/scripts/lib/custom-docker.sh b/scripts/lib/custom-docker.sh index 91a8978..66fdc86 100644 --- a/scripts/lib/custom-docker.sh +++ b/scripts/lib/custom-docker.sh @@ -1,12 +1,29 @@ -TOOLS=(DEBIAN RUBY BUNDLER GOLANG GIT LFS CHROME NODE YARN POSTGRESQL GRAPHICSMAGICK PGBOUNCER BAZELISK DOCKER GCLOUD KUBECTL) +PATH_TOOLS=() +TAG_TOOLS=(DEBIAN RUBY BUNDLER GOLANG GIT LFS CHROME NODE YARN POSTGRESQL GRAPHICSMAGICK PGBOUNCER BAZELISK DOCKER GCLOUD KUBECTL) -function get_image_name(){ - local IMAGE_NAME - IMAGE_NAME="" - for tool in "${TOOLS[@]}"; do - if [ -n "${!tool}" ]; then - IMAGE_NAME="${IMAGE_NAME}-${tool,,}-${!tool}" +function get_image_path() { + local path + path="" + for tool in "${PATH_TOOLS[@]}"; do + if [[ -n "${!tool}" ]]; then + path="${path}-${tool,,}-${!tool}" fi done - echo "${IMAGE_NAME:1}" + + if [[ -n "$path" ]]; then + echo "$CI_REGISTRY_IMAGE/${path:1}" + else + echo "$CI_REGISTRY_IMAGE" + fi +} + +function get_image_tag() { + local tag + tag="" + for tool in "${TAG_TOOLS[@]}"; do + if [[ -n "${!tool}" ]]; then + tag="${tag}-${tool,,}-${!tool}" + fi + done + echo "${tag:1}" }