diff --git a/Dockerfile b/Dockerfile index 407f3ab..ac50ed3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,15 @@ FROM golang:1.17.5-buster as builder +ARG TARGETOS +ARG TARGETARCH + ARG version ENV VERSION=$version WORKDIR /go/src/app COPY . . -RUN make manager +RUN TARGETOS=${TARGETOS} TARGETARCH=${TARGETARCH} make manager && \ + mv bin/manager_${TARGETOS}_${TARGETARCH} bin/manager FROM alpine:3.15 diff --git a/Makefile b/Makefile index dadb5ba..2827109 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,11 @@ CRD_OPTIONS ?= "crd" # default k8s version for e2e tests K8S_VERSION ?= 1.23.0 +TARGETOS=linux +ifeq (,${TARGETARCH}) +TARGETARCH=$(shell go env GOARCH) +endif + # Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) ifeq (,$(shell go env GOBIN)) GOBIN=$(shell go env GOPATH)/bin @@ -33,7 +38,7 @@ e2e-test: kind # Build manager binary manager: generate fmt vet - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-w -X=main.Version=$(BIN_VERSION)' -o bin/manager main.go + CGO_ENABLED=0 GOOS=$(TARGETOS) GOARCH=$(TARGETARCH) go build -a -ldflags '-w -X=main.Version=$(BIN_VERSION)' -o bin/manager_$(TARGETOS)_$(TARGETARCH) main.go # Run against the configured Kubernetes cluster in ~/.kube/config run: generate fmt vet manifests