|
1 | 1 | ##@ Docker image info |
2 | 2 | IMG ?= linktimecloud/kubernetes-data-platform:$(VERSION) |
| 3 | +KDP_IMG ?= linktimecloud/kdp:$(VERSION) |
3 | 4 | IMG_REGISTRY ?= "" |
| 5 | +OUTPUT_TYPE := registry |
| 6 | +TARGETARCHS := amd64 arm64 |
| 7 | +ALL_OS_ARCH := linux-arm64 linux-amd64 |
4 | 8 |
|
5 | 9 | ##@ Build docker image |
6 | 10 | .PHONY: docker-build |
@@ -46,13 +50,29 @@ kdp-cli-clean: |
46 | 50 | ##@ Build infra image |
47 | 51 | .PHONY: kdp-infra-build |
48 | 52 | kdp-infra-build: |
49 | | - for arch in amd64 arm64; do \ |
50 | | - env GOOS=linux GOARCH=$$arch \ |
51 | | - go build -ldflags "-X kdp/cmd.CliVersion=$(VERSION) -X kdp/cmd.CliGoVersion=$(GO_VERSION) -X kdp/cmd.CliGitCommit=$(GIT_COMMIT) -X \"kdp/cmd.CliBuiltAt=$(BUILD_DATE)\" -X \"kdp/cmd.CliOSArch=$$arch\"" -o ./cmd/output/$(VERSION)/kdp-linux-$$arch; \ |
52 | | - if [ -n "$(IMG_REGISTRY)" ]; then \ |
53 | | - docker buildx build --platform linux/$$arch --build-arg VERSION="$(VERSION)" --output=type=image,name=$(IMG_REGISTRY)/kdp:$(VERSION),push=true -f kdp.Dockerfile . ; \ |
54 | | - else \ |
55 | | - docker buildx build --platform linux/$$arch --build-arg VERSION="$(VERSION)" --output=type=docker,name=kdp-$$arch:$(VERSION) -f kdp.Dockerfile . ; \ |
56 | | - fi \ |
57 | | - done |
| 53 | + go build -ldflags "-X kdp/cmd.CliVersion=$(VERSION) -X kdp/cmd.CliGoVersion=$(GO_VERSION) -X kdp/cmd.CliGitCommit=$(GIT_COMMIT) -X \"kdp/cmd.CliBuiltAt=$(BUILD_DATE)\" -X \"kdp/cmd.CliOSArch=$$arch\"" -o ./cmd/output/$(VERSION)/kdp-linux-$(TARGETARCH); \ |
| 54 | + docker buildx build \ |
| 55 | + --output=type=$(OUTPUT_TYPE) \ |
| 56 | + --platform linux/$(TARGETARCH) \ |
| 57 | + --provenance false \ |
| 58 | + --build-arg VERSION=$(VERSION) \ |
| 59 | + --build-arg TARGETARCH=$(TARGETARCH) \ |
| 60 | + -t $(IMG_REGISTRY)/$(KDP_IMG)-linux-$(TARGETARCH) \ |
| 61 | + -f kdp.Dockerfile . |
| 62 | + @$(OK) |
| 63 | + |
| 64 | + |
| 65 | +##@ push infra image |
| 66 | +.PHONY: publish |
| 67 | +publish: |
| 68 | + docker manifest create --amend $(IMG_REGISTRY)/$(KDP_IMG) $(foreach osarch, $(ALL_OS_ARCH), $(IMG_REGISTRY)/$(KDP_IMG)-${osarch}) |
| 69 | + docker manifest push --purge $(IMG_REGISTRY)/$(KDP_IMG) |
| 70 | + docker manifest inspect $(IMG_REGISTRY)/$(KDP_IMG) |
| 71 | + |
58 | 72 |
|
| 73 | +##@ Build multi-arch image |
| 74 | +.PHONY: multi-arch-builder |
| 75 | +multi-arch-builder: |
| 76 | + for arch in $(TARGETARCHS); do \ |
| 77 | + TARGETARCH=$${arch} $(MAKE) kdp-infra-build;\ |
| 78 | + done |
0 commit comments