Skip to content

Commit a201564

Browse files
[AUTO-CHERRYPICK] Selectively build base container for fasttrack/2.0 - branch main (#12305)
Co-authored-by: Riken Maharjan <106988478+rikenm1@users.noreply.github.com>
1 parent 0cf6695 commit a201564

1 file changed

Lines changed: 44 additions & 13 deletions

File tree

.pipelines/containerSourceData/scripts/BuildBaseContainers.sh

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ set -e
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

93101
function 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 {
345376
function 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

Comments
 (0)