4949# -r "" \
5050# -q "false"
5151
52- while getopts " :a:c:k:l:o:p:r:q:" OPTIONS; do
52+ while getopts " :a:c:k:l:o:p:r:q:s:t:u:v: " OPTIONS; do
5353 case ${OPTIONS} in
5454 a ) ACR=$OPTARG ;;
5555 c ) CONTAINER_TARBALLS_DIR=$OPTARG ;;
@@ -59,6 +59,10 @@ while getopts ":a:c:k:l:o:p:r:q:" OPTIONS; do
5959 p ) PUBLISHING_LEVEL=$OPTARG ;;
6060 r ) REPO_PREFIX=$OPTARG ;;
6161 q ) PUBLISH_TO_ACR=$OPTARG ;;
62+ s ) DISTROLESS_BASE_BUILD=$OPTARG ;;
63+ t ) DISTROLESS_DEBUG_BUILD=$OPTARG ;;
64+ u ) DISTROLESS_MINIMAL_BUILD=$OPTARG ;;
65+ v ) BASE_BUILD=$OPTARG ;;
6266
6367 \? )
6468 echo " Error - Invalid Option: -$OPTARG " 1>&2
@@ -88,6 +92,10 @@ function print_inputs {
8892 echo " PUBLISHING_LEVEL -> $PUBLISHING_LEVEL "
8993 echo " PUBLISH_TO_ACR -> $PUBLISH_TO_ACR "
9094 echo " OUTPUT_DIR -> $OUTPUT_DIR "
95+ echo " DISTROLESS_BASE_BUILD -> $DISTROLESS_BASE_BUILD "
96+ echo " DISTROLESS_DEBUG_BUILD -> $DISTROLESS_DEBUG_BUILD "
97+ echo " DISTROLESS_MINIMAL_BUILD -> $DISTROLESS_MINIMAL_BUILD "
98+ echo " BASE_BUILD -> $BASE_BUILD "
9199}
92100
93101function validate_inputs {
@@ -106,10 +114,16 @@ function validate_inputs {
106114 DISTROLESS_BASE_TARBALL=$( find " $CONTAINER_TARBALLS_DIR " -name " distroless-base-[0-9.]*.tar.gz" )
107115 DISTROLESS_DEBUG_TARBALL=$( find " $CONTAINER_TARBALLS_DIR " -name " distroless-debug-[0-9.]*.tar.gz" )
108116 DISTROLESS_MINIMAL_TARBALL=$( find " $CONTAINER_TARBALLS_DIR " -name " distroless-minimal-[0-9.]*.tar.gz" )
109- if [[ (! -f $BASE_TARBALL ) || \
110- (! -f $DISTROLESS_BASE_TARBALL ) || \
111- (! -f $DISTROLESS_DEBUG_TARBALL ) || \
112- (! -f $DISTROLESS_MINIMAL_TARBALL ) ]]; then
117+ # give default values
118+ BASE_BUILD=${BASE_BUILD:- true}
119+ DISTROLESS_BASE_BUILD=${DISTROLESS_BASE_BUILD:- true}
120+ DISTROLESS_DEBUG_BUILD=${DISTROLESS_DEBUG_BUILD:- true}
121+ DISTROLESS_MINIMAL_BUILD=${DISTROLESS_MINIMAL_BUILD:- true}
122+
123+ if [[ ($BASE_BUILD =~ [Tt]rue && ! -f $BASE_TARBALL ) || \
124+ ($DISTROLESS_BASE_BUILD =~ [Tt]rue && ! -f $DISTROLESS_BASE_TARBALL ) || \
125+ ($DISTROLESS_DEBUG_BUILD =~ [Tt]rue && ! -f $DISTROLESS_DEBUG_TARBALL ) || \
126+ ($DISTROLESS_MINIMAL_BUILD =~ [Tt]rue && ! -f $DISTROLESS_MINIMAL_TARBALL ) ]]; then
113127 echo " Error - Missing some tarball(s) in $CONTAINER_TARBALLS_DIR "
114128 exit 1
115129 fi
@@ -203,6 +217,10 @@ function initialization {
203217 echo " DISTROLESS_DEBUG_IMAGE_NAME -> $DISTROLESS_DEBUG_IMAGE_NAME "
204218 echo " DISTROLESS_DEBUG_NONROOT_IMAGE_NAME -> $DISTROLESS_DEBUG_NONROOT_IMAGE_NAME "
205219 echo " MARINARA_IMAGE_NAME -> $MARINARA_IMAGE_NAME "
220+ echo " DISTROLESS_BASE_BUILD -> $DISTROLESS_BASE_BUILD "
221+ echo " DISTROLESS_DEBUG_BUILD -> $DISTROLESS_DEBUG_BUILD "
222+ echo " DISTROLESS_MINIMAL_BUILD -> $DISTROLESS_MINIMAL_BUILD "
223+ echo " BASE_BUILD -> $BASE_BUILD "
206224
207225 ROOT_FOLDER=" $( git rev-parse --show-toplevel) "
208226 EULA_FILE_PATH=" $ROOT_FOLDER /.pipelines/container_artifacts/data"
@@ -219,6 +237,12 @@ function docker_build {
219237 local image_full_name=$2
220238 local image_tarball=$3
221239 local dockerfile=$4
240+ local should_build=$5
241+
242+ if [[ $should_build =~ [Ff]alse ]]; then
243+ echo " +++ Skip building image- Fasttrack: $image_full_name "
244+ return
245+ fi
222246
223247 echo " +++ Importing container image: $image_full_name "
224248 local temp_image=${image_full_name} _temp
@@ -256,6 +280,13 @@ function docker_build_custom {
256280 local image_full_name=$2
257281 local final_image_to_use=$3
258282 local dockerfile=$4
283+ local should_build=$5
284+
285+ if [[ $should_build =~ [Ff]alse ]]; then
286+ echo " +++ Skip building image- Fasttrack: $image_full_name "
287+ return
288+ fi
289+
259290
260291 # $WORK_DIR has $RPMS_DIR directory and $LOCAL_REPO_FILE file.
261292 pushd " $WORK_DIR " > /dev/null
@@ -345,15 +376,15 @@ function save_container_image {
345376function build_images {
346377 echo " +++ Build images"
347378
348- docker_build $BASE " $BASE_IMAGE_NAME " " $BASE_TARBALL " " Dockerfile-Base-Template"
349- docker_build $DISTROLESS " $DISTROLESS_BASE_IMAGE_NAME " " $DISTROLESS_BASE_TARBALL " " Dockerfile-Distroless-Template"
350- docker_build $DISTROLESS " $DISTROLESS_MINIMAL_IMAGE_NAME " " $DISTROLESS_MINIMAL_TARBALL " " Dockerfile-Distroless-Template"
351- docker_build $DISTROLESS " $DISTROLESS_DEBUG_IMAGE_NAME " " $DISTROLESS_DEBUG_TARBALL " " Dockerfile-Distroless-Template"
379+ docker_build $BASE " $BASE_IMAGE_NAME " " $BASE_TARBALL " " Dockerfile-Base-Template" $BASE_BUILD
380+ docker_build $DISTROLESS " $DISTROLESS_BASE_IMAGE_NAME " " $DISTROLESS_BASE_TARBALL " " Dockerfile-Distroless-Template" $DISTROLESS_BASE_BUILD
381+ docker_build $DISTROLESS " $DISTROLESS_MINIMAL_IMAGE_NAME " " $DISTROLESS_MINIMAL_TARBALL " " Dockerfile-Distroless-Template" $DISTROLESS_MINIMAL_BUILD
382+ docker_build $DISTROLESS " $DISTROLESS_DEBUG_IMAGE_NAME " " $DISTROLESS_DEBUG_TARBALL " " Dockerfile-Distroless-Template" $DISTROLESS_DEBUG_BUILD
352383
353- docker_build_custom $BASE " $BASE_NONROOT_IMAGE_NAME " " " " Dockerfile-Base-Nonroot-Template"
354- docker_build_custom $DISTROLESS " $DISTROLESS_BASE_NONROOT_IMAGE_NAME " " $DISTROLESS_BASE_IMAGE_NAME " " Dockerfile-Distroless-Nonroot-Template"
355- docker_build_custom $DISTROLESS " $DISTROLESS_MINIMAL_NONROOT_IMAGE_NAME " " $DISTROLESS_MINIMAL_IMAGE_NAME " " Dockerfile-Distroless-Nonroot-Template"
356- docker_build_custom $DISTROLESS " $DISTROLESS_DEBUG_NONROOT_IMAGE_NAME " " $DISTROLESS_DEBUG_IMAGE_NAME " " Dockerfile-Distroless-Nonroot-Template"
384+ docker_build_custom $BASE " $BASE_NONROOT_IMAGE_NAME " " " " Dockerfile-Base-Nonroot-Template" $BASE_BUILD
385+ docker_build_custom $DISTROLESS " $DISTROLESS_BASE_NONROOT_IMAGE_NAME " " $DISTROLESS_BASE_IMAGE_NAME " " Dockerfile-Distroless-Nonroot-Template" $DISTROLESS_BASE_BUILD
386+ docker_build_custom $DISTROLESS " $DISTROLESS_MINIMAL_NONROOT_IMAGE_NAME " " $DISTROLESS_MINIMAL_IMAGE_NAME " " Dockerfile-Distroless-Nonroot-Template" $DISTROLESS_MINIMAL_BUILD
387+ docker_build_custom $DISTROLESS " $DISTROLESS_DEBUG_NONROOT_IMAGE_NAME " " $DISTROLESS_DEBUG_IMAGE_NAME " " Dockerfile-Distroless-Nonroot-Template" $DISTROLESS_DEBUG_BUILD
357388
358389 docker_build_marinara
359390}
0 commit comments