debian: --cache avoid pulling builder images

Changed the "--cache" option to skip pulling images that already exist
locally. Otherwise a locally-built image would be overwritten by a
downloaded one.

TESTS
===============================
Call the script with various permutations of --cache & --rebuild, with &
without deleting cached images prior.

Story: 2009897
Task: 45225

Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
Change-Id: I37435d3d7a6d1a20b87794530cc937d759674685
This commit is contained in:
Davlet Panech
2022-04-29 16:08:15 -04:00
parent 011af73b11
commit c7e4e6b236

View File

@@ -18,7 +18,9 @@ Initialize StarlingX build environment & (re-)start builder pods
--rebuild[=IMG,...] --rebuild[=IMG,...]
build specified pod images instead of downloading them build specified pod images instead of downloading them
--cache allow docker to use its filesystem cache (with --rebuild) --cache when rebuilding, allow docker to use its filesystem cache
when pulling, skip images that already exist locally
CAUTION: this option may not pick up all the changes to CAUTION: this option may not pick up all the changes to
docker source files and is meant for debugging docker source files and is meant for debugging
the build scripts. the build scripts.
@@ -281,20 +283,21 @@ fi
# Pull images that we didn't rebuild # Pull images that we didn't rebuild
PULL_DOCKER_IMAGES=$( PULL_DOCKER_IMAGES=$(
for img in ${DOCKER_IMAGES} ; do for img in ${DOCKER_IMAGES} ; do
found=no built=no
for build_img in ${BUILD_DOCKER_IMAGES} ; do for build_img in ${BUILD_DOCKER_IMAGES} ; do
if [[ "$img" == "$build_img" ]] ; then if [[ "$img" == "$build_img" ]] ; then
found=yes built=yes
break break
fi fi
done done
if [[ "$found" != "yes" ]] ; then if [[ "$built" != "yes" ]] && \
{ [[ "$USE_DOCKER_CACHE" != 1 ]] || ! docker image inspect ${img}:${DOCKER_TAG_LOCAL} >/dev/null 2>&1 ; } ; then
echo "$img" echo "$img"
fi fi
done done
) )
if [[ -n "$PULL_DOCKER_IMAGES" ]] ; then if [[ -n "$PULL_DOCKER_IMAGES" ]] ; then
notice "Pulling docker images" notice "Pulling docker images: "$PULL_DOCKER_IMAGES
for img in $PULL_DOCKER_IMAGES; do for img in $PULL_DOCKER_IMAGES; do
docker pull ${DOCKER_PREFIX}${img}:${DOCKER_TAG} || exit 1 docker pull ${DOCKER_PREFIX}${img}:${DOCKER_TAG} || exit 1
docker tag ${DOCKER_PREFIX}${img}:${DOCKER_TAG} ${img}:${DOCKER_TAG_LOCAL} || exit 1 docker tag ${DOCKER_PREFIX}${img}:${DOCKER_TAG} ${img}:${DOCKER_TAG_LOCAL} || exit 1