Skip to content

Commit e664535

Browse files
authored
chore: build multi-arch image (#85)
1 parent aea4dba commit e664535

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

Dockerfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@ RUN apt update \
1616
&& apt autoremove -y wget
1717

1818
FROM gcr.io/distroless/cc-debian12:${BASE_IMAGE_TAG}
19+
20+
ARG TARGETARCH
21+
1922
WORKDIR /app
2023

2124
COPY --from=deps /bin/adc /bin/adc
22-
COPY ./bin/api7-ingress-controller .
25+
COPY ./bin/api7-ingress-controller_${TARGETARCH} ./api7-ingress-controller
2326
COPY ./config/samples/config.yaml ./conf/config.yaml
2427

2528
ENTRYPOINT ["/app/api7-ingress-controller"]

Makefile

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,14 +156,28 @@ pull-infra-images:
156156

157157
.PHONY: build
158158
build: manifests generate fmt vet ## Build manager binary.
159-
GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go build -o bin/api7-ingress-controller -ldflags $(GO_LDFLAGS) cmd/main.go
159+
GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go build -o bin/api7-ingress-controller_$(GOARCH) -ldflags $(GO_LDFLAGS) cmd/main.go
160160

161161
linux-build:
162162
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o bin/api7-ingress-controller -ldflags $(GO_LDFLAGS) cmd/main.go
163163

164164
.PHONY: build-image
165165
build-image: docker-build
166166

167+
.PHONY: build-multi-arch
168+
build-multi-arch:
169+
@CGO_ENABLED=0 GOARCH=amd64 go build -o bin/api7-ingress-controller_amd64 -ldflags $(GO_LDFLAGS) cmd/main.go
170+
@CGO_ENABLED=0 GOARCH=arm64 go build -o bin/api7-ingress-controller_arm64 -ldflags $(GO_LDFLAGS) cmd/main.go
171+
172+
.PHONY: build-multi-arch-image
173+
build-multi-arch-image: build-multi-arch
174+
# daemon.json: "features":{"containerd-snapshotter": true}
175+
@docker buildx build --load --platform linux/amd64,linux/arm64 -t $(IMG) .
176+
177+
.PHONY: build-push-multi-arch-image
178+
build-push-multi-arch-image: build-multi-arch
179+
@docker buildx build --push --platform linux/amd64,linux/arm64 -t $(IMG) .
180+
167181
.PHONY: run
168182
run: manifests generate fmt vet ## Run a controller from your host.
169183
go run ./cmd/main.go

0 commit comments

Comments
 (0)