diff --git a/build/docker_images_builder.sh b/build/docker_images_builder.sh index 1a4d24e..edc94e5 100755 --- a/build/docker_images_builder.sh +++ b/build/docker_images_builder.sh @@ -1,5 +1,6 @@ #!/bin/bash + usage() { echo -n "Usage: ${0} " echo @@ -24,8 +25,8 @@ ReleaseDir="/home/cvttdist/software/cvtt2" DIMAGES_CONFIG=$(curl -s ${ConfigUrl} | ${HOME}/bin/hjson -j) -# RootDir=/home/oleg/prod -SetVersionScript=/home/oleg/prod/ops/scripts/set_version.sh + +SetVersionScript=${HOME}/prod/set_version.sh # --------------- D E B U G @@ -35,12 +36,12 @@ mkdir -p ${RootDir} build_docker_image() { title=${1} image_name=${2} - docker_dev=${3} + docker_dev_path=${3} project=${4} echo "Building ${title}..." echo "ImageName=${image_name}" - echo "DockerDev=${docker_dev}" + echo "DockerDevPath=${docker_dev_path}" echo "BasedOnDist=${project}" # Get Latest DIST version @@ -58,9 +59,14 @@ build_docker_image() { fi echo "Image $image_name:$image_version does not exist in the registry." echo "getting lastest version of ${project} on ${ReleaseUser}@${ReleaseHost}:${ReleaseDir}" - ${SetVersionScript} ${project} ${image_version} - DockerDir=./docker_dev/${docker_dev} + Cmd="${SetVersionScript} ${project} ${image_version}" + echo ${Cmd} + eval ${Cmd} + + convert_symlink_to_dir ${project} + + DockerDir=./docker_dev/${docker_dev_path} echo "Building ${title}... on ${DockerDev}" Cmd="docker build" @@ -69,7 +75,7 @@ build_docker_image() { Cmd+=" -t ${image_name}:${image_version}" Cmd+=" -f ${DockerDir}/Dockerfile ${RootDir}" echo ${Cmd} - eval ${Cmd} || exit + eval ${Cmd} 1>&2 || exit Cmd="docker tag" Cmd+=" ${image_name}:latest" @@ -93,7 +99,28 @@ build_docker_image() { echo ${Cmd} eval ${Cmd} || exit + echo "Removing the copy of ${project} from ${RootDir}" + Cmd="rm -rf ${RootDir}/${project}" + echo ${Cmd} + eval ${Cmd} +} +convert_symlink_to_dir() { + project=${1} + if [ -L ${RootDir}/${project} ]; then + echo "Converting symlink ${RootDir}/${project} to directory" + + Cmd="mv ${RootDir}/${project} ${RootDir}/${project}.symlink" + echo ${Cmd} && eval ${Cmd} + + Cmd="cp -r ${RootDir}/${project}.symlink ${RootDir}/${project}" + echo ${Cmd} && eval ${Cmd} + fi + if [ -D ${project} ]; then + echo "${RootDir}/${project} is a Directory" + fi + Cmd="rm ${RootDir}/${project}.symlink" + echo ${Cmd} && eval ${Cmd} } image_exists() { @@ -117,6 +144,7 @@ get_latest_dist_version() { echo RootDir=${RootDir} cd ${RootDir} + echo "Getting latest version of docker_dev" Cmd="${SetVersionScript} docker_dev latest" echo ${Cmd} @@ -126,12 +154,19 @@ echo "${DIMAGES_CONFIG}" | jq -c 'to_entries[]' | while IFS= read -r item; do # Extract key (name) and values title=$(echo "$item" | jq -r '.key') image_name=$(echo "$item" | jq -r '.value.image_name') - docker_dev=$(echo "$item" | jq -r '.value.docker_dev') - project=$(echo "$item" | jq -r '.value.based_on_dist') - build_docker_image "$title" "$image_name" "$docker_dev" "$project" + docker_dev_path=$(echo "$item" | jq -r '.value.docker_dev_path') + project=$(echo "$item" | jq -r '.value.based_on_project') + build_docker_image "$title" "$image_name" "$docker_dev_path" "$project" done -exit +Cmd="docker images" +echo ${Cmd} +eval ${Cmd} + +Cmd="rm -rf ${RootDir}/docker_dev" +echo ${Cmd} +eval ${Cmd} + #=============================================================================== #=============================================================================== diff --git a/release_version.txt b/release_version.txt index 999b02f..183d348 100644 --- a/release_version.txt +++ b/release_version.txt @@ -1 +1 @@ -1.8.4,initial (not working) version of docker_image_builder.sh +1.8.4.fx1,initial version of docker_image_builder.sh