Added a target to export docker images as tarballs

This commit is contained in:
Konstantin Pavlov
2020-03-13 17:35:47 +03:00
parent baf9230398
commit 7181a661c5
2 changed files with 31 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
#!/usr/bin/make
include ../../version
include ../shasum.mak
DEFAULT_RELEASE := 1
@@ -29,12 +30,16 @@ MODULE_full="unit=$${UNIT_VERSION} unit-php=$${UNIT_VERSION} unit-python2.7=$${U
MODULE_minimal="unit=$${UNIT_VERSION}"
EXPORT_DIR := $(VERSION)
default:
@echo "valid targets: all build dockerfiles push clean"
@echo "valid targets: all build dockerfiles push tag export clean"
dockerfiles: $(addprefix Dockerfile., $(MODULES))
build: dockerfiles $(addprefix build-,$(MODULES))
push: build $(addprefix push-,$(MODULES)) latest
build: $(addprefix build-,$(MODULES))
tag: $(addprefix tag-,$(MODULES))
push: $(addprefix push-,$(MODULES)) latest
export: $(addsuffix .tar.gz,$(addprefix $(EXPORT_DIR)/nginx-unit-$(VERSION)-,$(MODULES))) $(addsuffix .tar.gz.sha512, $(addprefix $(EXPORT_DIR)/nginx-unit-$(VERSION)-,$(MODULES)))
Dockerfile.%: ../../version
@echo "===> Building $@"
@@ -46,17 +51,29 @@ Dockerfile.%: ../../version
build-%: Dockerfile.%
docker build -t unit:$(VERSION)-$* -f Dockerfile.$* .
push-%:
tag-%: build-%
docker tag unit:$(VERSION)-$* nginx/unit:$(VERSION)-$*
push-%: tag-%
docker push nginx/unit:$(VERSION)-$*
latest:
docker tag nginx/unit:$(VERSION)-full nginx/unit:latest
docker push nginx/unit:latest
$(EXPORT_DIR):
mkdir -p $@
$(EXPORT_DIR)/nginx-unit-$(VERSION)-%.tar.gz: $(EXPORT_DIR) tag-%
docker save nginx/unit:$(VERSION)-$* | gzip > $@
$(EXPORT_DIR)/nginx-unit-$(VERSION)-%.tar.gz.sha512: $(EXPORT_DIR)/nginx-unit-$(VERSION)-%.tar.gz
$(SHA512SUM) $< > $@
all: $(addprefix Dockerfile., $(MODULES))
clean:
rm -f $(addprefix Dockerfile., $(MODULES))
rm -rf $(EXPORT_DIR)
.PHONY: default all build dockerfiles latest push clean
.PHONY: default all build dockerfiles latest push tag export clean

9
pkg/shasum.mak Normal file
View File

@@ -0,0 +1,9 @@
ifeq ($(shell sha512sum --version >/dev/null 2>&1 || echo FAIL),)
SHA512SUM = sha512sum
else ifeq ($(shell shasum --version >/dev/null 2>&1 || echo FAIL),)
SHA512SUM = shasum -a 512
else ifeq ($(shell openssl version >/dev/null 2>&1 || echo FAIL),)
SHA512SUM = openssl sha512
else
SHA512SUM = $(error no SHA-512 tool found!)
endif