Merge pull request #13641 from sam6258/build-context

build: add ability to stash docker build context
This commit is contained in:
Travis Nielsen authored and GitHub committed 2024-03-01 11:17:02 -07:00
commit 02db25c30c
1 file changed
+20 -15
+20 -15
View File
@@ -31,7 +31,9 @@ YQv3_VERSION = 3.4.1
GOHOST := GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) go
MANIFESTS_DIR=../../deploy/examples
TEMP := $(shell mktemp -d)
ifeq ($(BUILD_CONTEXT_DIR),)
BUILD_CONTEXT_DIR := $(shell mktemp -d)
endif
# Note: as of version 1.3 of operator-sdk, the url format changed to:
# ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH}
@@ -68,33 +70,36 @@ export OPERATOR_SDK YQv3
do.build:
@echo === container build $(CEPH_IMAGE)
@cp Dockerfile $(TEMP)
@cp toolbox.sh $(TEMP)
@cp set-ceph-debug-level $(TEMP)
@cp $(OUTPUT_DIR)/bin/linux_$(GOARCH)/rook $(TEMP)
@cp -r $(MANIFESTS_DIR)/monitoring $(TEMP)/ceph-monitoring
@mkdir -p $(TEMP)/rook-external/test-data
@cp $(MANIFESTS_DIR)/create-external-cluster-resources.* $(TEMP)/rook-external/
@cp ../../tests/ceph-status-out $(TEMP)/rook-external/test-data/
@mkdir -p $(BUILD_CONTEXT_DIR)
@cp Dockerfile $(BUILD_CONTEXT_DIR)
@cp toolbox.sh $(BUILD_CONTEXT_DIR)
@cp set-ceph-debug-level $(BUILD_CONTEXT_DIR)
@cp $(OUTPUT_DIR)/bin/linux_$(GOARCH)/rook $(BUILD_CONTEXT_DIR)
@cp -r $(MANIFESTS_DIR)/monitoring $(BUILD_CONTEXT_DIR)/ceph-monitoring
@mkdir -p $(BUILD_CONTEXT_DIR)/rook-external/test-data
@cp $(MANIFESTS_DIR)/create-external-cluster-resources.* $(BUILD_CONTEXT_DIR)/rook-external/
@cp ../../tests/ceph-status-out $(BUILD_CONTEXT_DIR)/rook-external/test-data/
ifeq ($(INCLUDE_CSV_TEMPLATES),true)
@$(MAKE) csv
@cp -r ../../build/csv $(TEMP)/ceph-csv-templates
@rm $(TEMP)/ceph-csv-templates/csv-gen.sh
@cp -r ../../build/csv $(BUILD_CONTEXT_DIR)/ceph-csv-templates
@rm $(BUILD_CONTEXT_DIR)/ceph-csv-templates/csv-gen.sh
@$(MAKE) csv-clean
else
mkdir $(TEMP)/ceph-csv-templates
mkdir $(BUILD_CONTEXT_DIR)/ceph-csv-templates
endif
@cd $(TEMP) && $(SED_IN_PLACE) 's|BASEIMAGE|$(BASEIMAGE)|g' Dockerfile
@cd $(BUILD_CONTEXT_DIR) && $(SED_IN_PLACE) 's|BASEIMAGE|$(BASEIMAGE)|g' Dockerfile
@if [ -z "$(BUILD_CONTAINER_IMAGE)" ]; then\
$(DOCKERCMD) build $(BUILD_ARGS) \
--build-arg S5CMD_VERSION=$(S5CMD_VERSION) \
--build-arg S5CMD_ARCH=$(S5CMD_ARCH) \
-t $(CEPH_IMAGE) \
$(TEMP);\
$(BUILD_CONTEXT_DIR);\
fi
@if [ -z "$(SAVE_BUILD_CONTEXT_DIR)" ]; then\
rm -fr $(BUILD_CONTEXT_DIR);\
fi
@rm -fr $(TEMP)
# call this before building multiple arches in parallel to prevent parallel build processes from
# conflicting