@@ -23,6 +23,10 @@ DOCKER_TAG = latest
2323DIR = .
2424FILE = Dockerfile
2525
26+ # Space separated Docker images (in FROM block) to not to pull
27+ DOCKER_PULL_BASE_IMAGES_IGNORE =
28+
29+
2630# Auto-detect current platform and use it as default to build for
2731_PLATFORM = $(shell uname -m)
2832ifeq ($(strip $(_PLATFORM)),x86_64)
@@ -193,11 +197,24 @@ docker-load:
193197# Helper Targets
194198# -------------------------------------------------------------------------------------------------
195199.PHONY: docker-pull-base-image
200+ _DOCKER_PULL_BASE_IMAGES_FOUND = $(shell grep FROM $(DIR)/$(FILE) | sed 's/^FROM\s*//g' | sed 's/\s.*$$//g' | sort -u )
201+ _DOCKER_PULL_BASE_IMAGES_PULL = $(shell \
202+ for img in $$( echo "$(_DOCKER_PULL_BASE_IMAGES_FOUND)" | sed 's/\s/\n/g' ); do \
203+ if ! echo $(DOCKER_PULL_BASE_IMAGES_IGNORE) | grep -F "$${img}" >/dev/null; then \
204+ echo "$${img}"; \
205+ fi; \
206+ done; \
207+ )
196208docker-pull-base-image:
197209 @echo "################################################################################"
198- @echo "# Pulling Base Image $(shell grep FROM $(DIR)/$(FILE) | sed 's/^FROM\s*//g';) (platform: $(ARCH))"
210+ @echo "# Pulling Base Image (platform: $(ARCH))"
199211 @echo "################################################################################"
200- @grep FROM $(DIR)/$(FILE) | sed 's/^FROM\s*//g' | sed 's/\s.*$$//g' | sort -u | while read -r line; do \
212+ @echo "Docker File: $(DIR)/$(FILE)"
213+ @echo "Images Found: $(_DOCKER_PULL_BASE_IMAGES_FOUND)"
214+ @echo "Images Ignore: $(DOCKER_PULL_BASE_IMAGES_IGNORE)"
215+ @echo "Images Actual: $(_DOCKER_PULL_BASE_IMAGES_PULL)"
216+ @echo
217+ @echo $(_DOCKER_PULL_BASE_IMAGES_PULL) | sed 's/\s/\n/g' | while read -r line; do \
201218 echo "docker pull --platform $(ARCH) $${line}"; \
202219 SUCC=0; \
203220 for count in $$(seq 10); do \
0 commit comments