Added a target to export docker images as tarballs
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/make
|
#!/usr/bin/make
|
||||||
|
|
||||||
include ../../version
|
include ../../version
|
||||||
|
include ../shasum.mak
|
||||||
|
|
||||||
DEFAULT_RELEASE := 1
|
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}"
|
MODULE_minimal="unit=$${UNIT_VERSION}"
|
||||||
|
|
||||||
|
EXPORT_DIR := $(VERSION)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@echo "valid targets: all build dockerfiles push clean"
|
@echo "valid targets: all build dockerfiles push tag export clean"
|
||||||
|
|
||||||
dockerfiles: $(addprefix Dockerfile., $(MODULES))
|
dockerfiles: $(addprefix Dockerfile., $(MODULES))
|
||||||
build: dockerfiles $(addprefix build-,$(MODULES))
|
build: $(addprefix build-,$(MODULES))
|
||||||
push: build $(addprefix push-,$(MODULES)) latest
|
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
|
Dockerfile.%: ../../version
|
||||||
@echo "===> Building $@"
|
@echo "===> Building $@"
|
||||||
@@ -46,17 +51,29 @@ Dockerfile.%: ../../version
|
|||||||
build-%: Dockerfile.%
|
build-%: Dockerfile.%
|
||||||
docker build -t unit:$(VERSION)-$* -f Dockerfile.$* .
|
docker build -t unit:$(VERSION)-$* -f Dockerfile.$* .
|
||||||
|
|
||||||
push-%:
|
tag-%: build-%
|
||||||
docker tag unit:$(VERSION)-$* nginx/unit:$(VERSION)-$*
|
docker tag unit:$(VERSION)-$* nginx/unit:$(VERSION)-$*
|
||||||
|
|
||||||
|
push-%: tag-%
|
||||||
docker push nginx/unit:$(VERSION)-$*
|
docker push nginx/unit:$(VERSION)-$*
|
||||||
|
|
||||||
latest:
|
latest:
|
||||||
docker tag nginx/unit:$(VERSION)-full nginx/unit:latest
|
docker tag nginx/unit:$(VERSION)-full nginx/unit:latest
|
||||||
docker push 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))
|
all: $(addprefix Dockerfile., $(MODULES))
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(addprefix Dockerfile., $(MODULES))
|
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
9
pkg/shasum.mak
Normal 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
|
||||||
Reference in New Issue
Block a user