@@ -2,6 +2,10 @@ ifneq (,)
22.error This Makefile requires GNU Make.
33endif
44
5+ ifndef VERBOSE
6+ MAKEFLAGS += --no-print-directory
7+ endif
8+
59
610# -------------------------------------------------------------------------------------------------
711# Docker required Variables
@@ -13,12 +17,12 @@ IMAGE =
1317# -------------------------------------------------------------------------------------------------
1418# Docker optional Variables
1519# -------------------------------------------------------------------------------------------------
16- NO_CACHE =
17- ARGS =
18- ARCH = linux/amd64
19- TAG = latest
20- DIR = .
21- FILE = Dockerfile
20+ NO_CACHE =
21+ ARGS =
22+ ARCH = linux/amd64
23+ DOCKER_TAG = latest
24+ DIR = .
25+ FILE = Dockerfile
2226
2327
2428# -------------------------------------------------------------------------------------------------
@@ -30,7 +34,7 @@ docker-help:
3034 @echo " NAME= # (req) Set label name"
3135 @echo " VERSION= # (req) Set label version"
3236 @echo " IMAGE= # (req) Set Docker image name"
33- @echo " TAG= # (opt) Set Docker image tag"
37+ @echo " DOCKER_TAG= # (opt) Set Docker image tag"
3438 @echo " ARCH= # (opt) Specify Docker platform to build against"
3539 @echo " DIR= # (opt) Specify directory of Docker file"
3640 @echo " FILE= # (opt) Specify filename of Docker file"
@@ -61,7 +65,7 @@ docker-arch-build:
6165 false; \
6266 fi
6367 @echo "################################################################################"
64- @echo "# Building $(IMAGE):$(TAG ) (platform: $(ARCH))"
68+ @echo "# Building $(IMAGE):$(DOCKER_TAG ) (platform: $(ARCH))"
6569 @echo "################################################################################"
6670 docker build \
6771 $(NO_CACHE) \
@@ -71,7 +75,7 @@ docker-arch-build:
7175 --label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
7276 --label "org.opencontainers.image.name"="$(NAME)" \
7377 --label "org.opencontainers.image.version"="$(VERSION)" \
74- --tag $(IMAGE):$(TAG ) \
78+ --tag $(IMAGE):$(DOCKER_TAG ) \
7579 --file $(DIR)/$(FILE) $(DIR)
7680
7781
@@ -83,44 +87,62 @@ docker-arch-rebuild: docker-arch-build
8387
8488.PHONY: docker-arch-push
8589docker-arch-push:
90+ @if [ "$(IMAGE)" = "" ]; then \
91+ echo "This make target requires the IMAGE variable to be set."; \
92+ echo "make docker-arch-push IMAGE="; \
93+ echo "Exiting."; \
94+ false; \
95+ fi
8696 @echo "################################################################################"
87- @echo "# Pushing Docker Image $(IMAGE):$(TAG )-manifest-$(subst /,-,$(ARCH))"
97+ @echo "# Pushing Docker Image $(IMAGE):$(DOCKER_TAG )-manifest-$(subst /,-,$(ARCH))"
8898 @echo "################################################################################"
89- docker tag $(IMAGE):$(TAG ) $(IMAGE):$(TAG )-manifest-$(subst /,-,$(ARCH))
90- docker push $(IMAGE):$(TAG )-manifest-$(subst /,-,$(ARCH))
99+ docker tag $(IMAGE):$(DOCKER_TAG ) $(IMAGE):$(DOCKER_TAG )-manifest-$(subst /,-,$(ARCH))
100+ docker push $(IMAGE):$(DOCKER_TAG )-manifest-$(subst /,-,$(ARCH))
91101
92102
93103# -------------------------------------------------------------------------------------------------
94104# Docker Manifest Targets
95105# -------------------------------------------------------------------------------------------------
96106.PHONY: docker-manifest-create
97107docker-manifest-create:
108+ @if [ "$(IMAGE)" = "" ]; then \
109+ echo "This make target requires the IMAGE variable to be set."; \
110+ echo "make docker-manifest-create IMAGE="; \
111+ echo "Exiting."; \
112+ false; \
113+ fi
98114 @if [ "$(ARCHES)" = "" ]; then \
99115 echo "This make target requires the ARCHES variable to be set."; \
100116 echo "make docker-manifest-create ARCHES="; \
101117 echo "Exiting."; \
102118 false; \
103119 fi
104120 @echo "################################################################################"
105- @echo "# Creating Manifest $(IMAGE):$(TAG ) ($(ARCHES))"
121+ @echo "# Creating Manifest $(IMAGE):$(DOCKER_TAG ) ($(ARCHES))"
106122 @echo "################################################################################"
107123 @echo "docker manifest create \
108- $(IMAGE):$(TAG ) \
109- $$( echo $(ARCHES) | sed 's/,/ /g' | sed 's|/|-|g' | xargs -n1 sh -c 'printf -- " --amend $(IMAGE):$(TAG )-manifest-$${1}"' -- )" \
124+ $(IMAGE):$(DOCKER_TAG ) \
125+ $$( echo $(ARCHES) | sed 's/,/ /g' | sed 's|/|-|g' | xargs -n1 sh -c 'printf -- " --amend $(IMAGE):$(DOCKER_TAG )-manifest-$${1}"' -- )" \
110126 | sed 's/\s\s*/ /g' \
111127 | sed 's/--/\\\n --/g'
112128 @echo "docker manifest create \
113- $(IMAGE):$(TAG ) \
114- $$( echo $(ARCHES) | sed 's/,/ /g' | sed 's|/|-|g' | xargs -n1 sh -c 'printf -- " --amend $(IMAGE):$(TAG )-manifest-$${1}"' -- )" \
129+ $(IMAGE):$(DOCKER_TAG ) \
130+ $$( echo $(ARCHES) | sed 's/,/ /g' | sed 's|/|-|g' | xargs -n1 sh -c 'printf -- " --amend $(IMAGE):$(DOCKER_TAG )-manifest-$${1}"' -- )" \
115131 | bash
116132
117133
118134.PHONY: docker-manifest-push
119135docker-manifest-push:
136+ @if [ "$(IMAGE)" = "" ]; then \
137+ echo "This make target requires the IMAGE variable to be set."; \
138+ echo "make docker-manifest-push IMAGE="; \
139+ echo "Exiting."; \
140+ false; \
141+ fi
120142 @echo "################################################################################"
121- @echo "# Pushing Manifest $(IMAGE):$(TAG )"
143+ @echo "# Pushing Manifest $(IMAGE):$(DOCKER_TAG )"
122144 @echo "################################################################################"
123- docker manifest push $(IMAGE):$(TAG )
145+ docker manifest push $(IMAGE):$(DOCKER_TAG )
124146
125147
126148# -------------------------------------------------------------------------------------------------
@@ -136,6 +158,12 @@ docker-pull-base-image:
136158
137159.PHONY: docker-enter
138160docker-enter:
161+ @if [ "$(IMAGE)" = "" ]; then \
162+ echo "This make target requires the IMAGE variable to be set."; \
163+ echo "make docker-enter IMAGE="; \
164+ echo "Exiting."; \
165+ false; \
166+ fi
139167 docker run --rm --platform=$(ARCH) -it --entrypoint=bash $(ARG) $(IMAGE)
140168
141169
0 commit comments