Fix multi architecture dockerfile

Add support for multi architecture build
for cephcsi. with multistage docker build
we we build cephcsi binary for both arm64
and amd64 architecture.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
Madhu Rajanna
2020-04-21 12:09:03 +05:30
committed by mergify[bot]
parent 43fbc00d49
commit 32e2a713e6
3 changed files with 51 additions and 18 deletions

View File

@ -21,8 +21,9 @@ CSI_IMAGE_VERSION=$(if $(ENV_CSI_IMAGE_VERSION),$(ENV_CSI_IMAGE_VERSION),canary)
CSI_IMAGE=$(CSI_IMAGE_NAME):$(CSI_IMAGE_VERSION)
$(info cephcsi image settings: $(CSI_IMAGE_NAME) version $(CSI_IMAGE_VERSION))
ifeq ($(origin GIT_COMMIT), undefined)
GIT_COMMIT=$(shell git rev-list -1 HEAD)
endif
GO_PROJECT=github.com/ceph/ceph-csi
@ -70,7 +71,7 @@ func-test:
.PHONY: cephcsi
cephcsi:
if [ ! -d ./vendor ]; then (go mod tidy && go mod vendor); fi
GOOS=linux GOARCH=$(GOARCH) go build -mod vendor -a -ldflags '$(LDFLAGS)' -o _output/cephcsi ./cmd/
GOOS=linux go build -mod vendor -a -ldflags '$(LDFLAGS)' -o _output/cephcsi ./cmd/
.PHONY: containerized-build containerized-test
containerized-build: .devel-container-id
@ -91,10 +92,8 @@ containerized-test: .test-container-id
$(CONTAINER_CMD) build -t $(CSI_IMAGE_NAME):test -f ./scripts/Dockerfile.test .
$(CONTAINER_CMD) inspect -f '{{.Id}}' $(CSI_IMAGE_NAME):test > .test-container-id
image-cephcsi: cephcsi
cp _output/cephcsi deploy/cephcsi/image/cephcsi
chmod +x deploy/cephcsi/image/cephcsi
$(CONTAINER_CMD) build -t $(CSI_IMAGE) deploy/cephcsi/image
image-cephcsi:
$(CONTAINER_CMD) build -t $(CSI_IMAGE) -f deploy/cephcsi/image/Dockerfile . --build-arg GOLANG_VERSION=1.13.8 --build-arg CSI_IMAGE_NAME=$(CSI_IMAGE_NAME) --build-arg CSI_IMAGE_VERSION=$(CSI_IMAGE_VERSION) --build-arg GIT_COMMIT=$(shell git rev-list -1 HEAD) --build-arg ARCH=$(ARCH)
push-image-cephcsi: image-cephcsi
$(CONTAINER_CMD) tag $(CSI_IMAGE) $(CSI_IMAGE)-$(GOARCH)