mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 10:02:56 +01:00
Allow to prefix deployed images into nested
This allows to escape the tag length limit of 128 and better organise images from different architectures
This commit is contained in:
parent
779a199009
commit
ee1bb21ec9
3 changed files with 35 additions and 16 deletions
|
|
@ -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 $@
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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}"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue