From 60b4a1e4d331cf1affd1cd6a29d7152a84f4f162 Mon Sep 17 00:00:00 2001 From: Blaine Gardner Date: Mon, 20 Aug 2018 13:19:47 -0600 Subject: [PATCH] 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 --- build/release/Makefile | 6 +++++- images/ceph-toolbox/Makefile | 12 ------------ images/ceph/Makefile | 12 ------------ images/cockroachdb/Makefile | 12 ------------ images/minio/Makefile | 12 ------------ 5 files changed, 5 insertions(+), 49 deletions(-) diff --git a/build/release/Makefile b/build/release/Makefile index 85def4383..de3071a86 100644 --- a/build/release/Makefile +++ b/build/release/Makefile @@ -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_/.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) diff --git a/images/ceph-toolbox/Makefile b/images/ceph-toolbox/Makefile index b3e914273..257582ae7 100644 --- a/images/ceph-toolbox/Makefile +++ b/images/ceph-toolbox/Makefile @@ -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) diff --git a/images/ceph/Makefile b/images/ceph/Makefile index f883a6f17..251616ba5 100755 --- a/images/ceph/Makefile +++ b/images/ceph/Makefile @@ -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) diff --git a/images/cockroachdb/Makefile b/images/cockroachdb/Makefile index 67e7edbc9..a407b2aaa 100755 --- a/images/cockroachdb/Makefile +++ b/images/cockroachdb/Makefile @@ -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) diff --git a/images/minio/Makefile b/images/minio/Makefile index 0e5555779..a5868f058 100755 --- a/images/minio/Makefile +++ b/images/minio/Makefile @@ -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)