Image make: Move save image step to release builds

The image save step in the image build makefiles takes half or more of
the time of builds, and this step is not necessary for development
builds. Move this functionality to the `build/release/Makefile` so that
images are saved during release builds but not during dev builds. This
will allow developers to iterate more quickly on their builds.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
This commit is contained in:
Blaine Gardner committed 2018-08-23 09:49:56 -06:00
1 parent 6cf39fa5cf
commit 60b4a1e4d3
5 files changed
+5 -49

No files matched your search

+5 -1
View File
@@ -153,7 +153,11 @@ promote.output:
# 1: registry 2: image, 3: arch
define repo.targets
build.image.$(1).$(2).$(3): ; @docker tag $(BUILD_REGISTRY)/$(2)-$(3) $(1)/$(2)-$(3):$(VERSION)
build.image.$(1).$(2).$(3):
@docker tag $(BUILD_REGISTRY)/$(2)-$(3) $(1)/$(2)-$(3):$(VERSION)
@# Save image as _output/images/linux_<arch>/<image>.tar.gz (no builds for darwin or windows)
@mkdir -p $(OUTPUT_DIR)/images/linux_$(3)
@docker save $(BUILD_REGISTRY)/$(2)-$(3) | gzip -c > $(OUTPUT_DIR)/images/linux_$(3)/$(2).tar.gz
build.all.images: build.image.$(1).$(2).$(3)
publish.image.$(1).$(2).$(3): ; @docker push $(1)/$(2)-$(3):$(VERSION)
publish.all.images: publish.image.$(1).$(2).$(3)
-12
View File
@@ -35,21 +35,9 @@ toolbox-base-image:
-t $(TOOLBOX_BASE_IMAGE) \
$(TEMP)
# since this is a leaf image we avoid leaving around a lot of dangling images
# by removing the last build of the final toolbox image
OLD_IMAGE_ID := $(shell docker images -q $(TOOLBOX_IMAGE))
CURRENT_IMAGE_ID := $$(docker images -q $(TOOLBOX_IMAGE))
IMAGE_FILENAME := $(IMAGE_OUTPUT_DIR)/ceph-toolbox.tar.gz
do.build: toolbox-base-image
@echo === docker build $(TOOLBOX_IMAGE)
@cp -a . $(TEMP)
@cd $(TEMP) && $(SED_CMD) 's|BASEIMAGE|$(TOOLBOX_BASE_IMAGE)|g' Dockerfile
@docker build $(BUILD_ARGS) -t $(TOOLBOX_IMAGE) $(TEMP)
@[ "$(OLD_IMAGE_ID)" != "$(CURRENT_IMAGE_ID)" ] && [ -n "$(OLD_IMAGE_ID)" ] && docker rmi $(OLD_IMAGE_ID) || true
@if [ ! -e "$(IMAGE_FILENAME)" ] || [ "$(OLD_IMAGE_ID)" != "$(CURRENT_IMAGE_ID)" ] || [ -z "$(OLD_IMAGE_ID)" ]; then \
echo === saving image $(TOOLBOX_IMAGE); \
mkdir -p $(IMAGE_OUTPUT_DIR); \
docker save $(TOOLBOX_IMAGE) | gzip -c > $(IMAGE_FILENAME); \
fi
@rm -fr $(TEMP)
-12
View File
@@ -27,12 +27,6 @@ TEMP := $(shell mktemp -d)
# ====================================================================================
# Build Rook
# since this is a leaf image we avoid leaving around a lot of dangling images
# by removing the last build of the final ceph image
OLD_IMAGE_ID := $(shell docker images -q $(CEPH_IMAGE))
CURRENT_IMAGE_ID := $$(docker images -q $(CEPH_IMAGE))
IMAGE_FILENAME := $(IMAGE_OUTPUT_DIR)/ceph.tar.gz
do.build:
@echo === docker build $(CEPH_IMAGE)
@cp Dockerfile $(TEMP)
@@ -44,10 +38,4 @@ do.build:
--build-arg TINI_VERSION=$(TINI_VERSION) \
-t $(CEPH_IMAGE) \
$(TEMP)
@[ "$(OLD_IMAGE_ID)" != "$(CURRENT_IMAGE_ID)" ] && [ -n "$(OLD_IMAGE_ID)" ] && docker rmi $(OLD_IMAGE_ID) || true
@if [ ! -e "$(IMAGE_FILENAME)" ] || [ "$(OLD_IMAGE_ID)" != "$(CURRENT_IMAGE_ID)" ] || [ -n "$(OLD_IMAGE_ID)" ]; then \
echo === saving image $(CEPH_IMAGE); \
mkdir -p $(IMAGE_OUTPUT_DIR); \
docker save $(CEPH_IMAGE) | gzip -c > $(IMAGE_FILENAME); \
fi
@rm -fr $(TEMP)
-12
View File
@@ -24,12 +24,6 @@ TEMP := $(shell mktemp -d)
# ====================================================================================
# Build Rook CockroachDB
# since this is a leaf image we avoid leaving around a lot of dangling images
# by removing the last build of the final cockroachdb image
OLD_IMAGE_ID := $(shell docker images -q $(COCKROACHDB_IMAGE))
CURRENT_IMAGE_ID := $$(docker images -q $(COCKROACHDB_IMAGE))
IMAGE_FILENAME := $(IMAGE_OUTPUT_DIR)/cockroachdb.tar.gz
do.build:
@echo === docker build $(COCKROACHDB_IMAGE)
@cp Dockerfile $(TEMP)
@@ -37,10 +31,4 @@ do.build:
@docker build $(BUILD_ARGS) \
-t $(COCKROACHDB_IMAGE) \
$(TEMP)
@[ "$(OLD_IMAGE_ID)" != "$(CURRENT_IMAGE_ID)" ] && [ -n "$(OLD_IMAGE_ID)" ] && docker rmi $(OLD_IMAGE_ID) || true
@if [ ! -e "$(IMAGE_FILENAME)" ] || [ "$(OLD_IMAGE_ID)" != "$(CURRENT_IMAGE_ID)" ] || [ -n "$(OLD_IMAGE_ID)" ]; then \
echo === saving image $(COCKROACHDB_IMAGE); \
mkdir -p $(IMAGE_OUTPUT_DIR); \
docker save $(COCKROACHDB_IMAGE) | gzip -c > $(IMAGE_FILENAME); \
fi
@rm -fr $(TEMP)
-12
View File
@@ -24,12 +24,6 @@ TEMP := $(shell mktemp -d)
# ====================================================================================
# Build Rook
# since this is a leaf image we avoid leaving around a lot of dangling images
# by removing the last build of the final minio image
OLD_IMAGE_ID := $(shell docker images -q $(MINIO_IMAGE))
CURRENT_IMAGE_ID := $$(docker images -q $(MINIO_IMAGE))
IMAGE_FILENAME := $(IMAGE_OUTPUT_DIR)/minio.tar.gz
do.build:
@echo === docker build $(MINIO_IMAGE)
@cp Dockerfile $(TEMP)
@@ -38,10 +32,4 @@ do.build:
--build-arg ARCH=$(GOARCH) \
-t $(MINIO_IMAGE) \
$(TEMP)
@[ "$(OLD_IMAGE_ID)" != "$(CURRENT_IMAGE_ID)" ] && [ -n "$(OLD_IMAGE_ID)" ] && docker rmi $(OLD_IMAGE_ID) || true
@if [ ! -e "$(IMAGE_FILENAME)" ] || [ "$(OLD_IMAGE_ID)" != "$(CURRENT_IMAGE_ID)" ] || [ -n "$(OLD_IMAGE_ID)" ]; then \
echo === saving image $(MINIO_IMAGE); \
mkdir -p $(IMAGE_OUTPUT_DIR); \
docker save $(MINIO_IMAGE) | gzip -c > $(IMAGE_FILENAME); \
fi
@rm -fr $(TEMP)