Create a multi-architecture manifest when pushing image to registry

This commit is contained in:
Tyler Stapler 2022-01-05 17:57:12 +00:00
parent 28eaacd631
commit 8114bec6cc
1 changed files with 12 additions and 1 deletions

View File

@ -39,12 +39,18 @@ all: all-container
sub-container-%:
$(MAKE) ARCH=$* container
sub-manifest-push-%:
$(MAKE) ARCH=$* manifest-push
sub-push-%:
$(MAKE) ARCH=$* push
all-container: test $(addprefix sub-container-,$(ALL_ARCH))
all-push: $(addprefix sub-push-,$(ALL_ARCH))
all-manifest-push: $(addprefix sub-manifest-push-,$(ALL_ARCH))
docker manifest push -p $(IMAGE):$(TAG)
all-push: $(addprefix sub-push-,$(ALL_ARCH)) all-manifest-push
buildx-setup:
docker buildx inspect img-builder > /dev/null || docker buildx create --name img-builder --use
@ -87,6 +93,11 @@ ifeq ($(ARCH), amd64)
gcloud docker -- push $(IMAGE):$(TAG)
endif
manifest-push: .manifest-push-$(ARCH)
.manifest-push-$(ARCH):
docker manifest create --amend $(IMAGE):$(TAG) $(MULTI_ARCH_IMG):$(TAG) && \
docker manifest annotate --os=linux --arch=$(ARCH) $(IMAGE):$(TAG) $(MULTI_ARCH_IMG):$(TAG)
clean: $(addprefix sub-clean-,$(ALL_ARCH))
sub-clean-%:
docker rmi -f $(IMAGE)-$*:$(TAG) || true