diff --git a/Dockerfile b/Dockerfile index 3f76386bc..0026f195b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,10 @@ # Build the manager binary -FROM golang:1.20 as builder +ARG BUILD_IMG ARG TARGETOS ARG TARGETARCH +FROM ${BUILD_IMG} as builder + WORKDIR /workspace # Copy the Go Modules manifests COPY go.mod go.mod diff --git a/Makefile b/Makefile index 887408df8..b679270b5 100644 --- a/Makefile +++ b/Makefile @@ -96,7 +96,10 @@ run: manifests generate fmt vet ## Run a controller from your host. # More info: https://docs.docker.com/develop/develop-images/build_enhancements/ .PHONY: docker-build docker-build: test ## Build docker image with the manager. - docker build -t ${IMG} . + docker build \ + -t ${IMG} \ + --build-arg BUILD_IMG=golang:$(GO_VERSION) \ + . k0smotron-image-bundle.tar: docker-build docker save ${IMG} -o k0smotron-image-bundle.tar @@ -195,10 +198,11 @@ clean: k0smotron-image-bundle.tar \ $(LOCALBIN) -hack/lint/.golangci-lint.stamp: hack/lint/Dockerfile +hack/lint/.golangci-lint.stamp: hack/lint/Dockerfile Makefile.variables docker build \ -t k0smotron.golangci-lint \ - --build-arg GOLANGCILINT_VERSION=1.52.2 \ + --build-arg BUILD_IMG=golang:$(GO_VERSION) \ + --build-arg GOLANGCILINT_VERSION=$(GOLANGCILINT_VERSION) \ -f hack/lint/Dockerfile \ . touch -- '$@' diff --git a/Makefile.variables b/Makefile.variables index 9885c89d8..5479b6d91 100644 --- a/Makefile.variables +++ b/Makefile.variables @@ -1,2 +1,4 @@ KUSTOMIZE_VERSION ?= v5.0.1 CONTROLLER_TOOLS_VERSION ?= v0.11.4 +GO_VERSION ?= 1.20.4 +GOLANGCILINT_VERSION ?= 1.52.2 diff --git a/hack/lint/Dockerfile b/hack/lint/Dockerfile index bf1438b62..f2aa0e131 100644 --- a/hack/lint/Dockerfile +++ b/hack/lint/Dockerfile @@ -1,5 +1,6 @@ -FROM golang:1.20 as builder +ARG BUILD_IMG +FROM ${BUILD_IMG} as builder ARG GOLANGCILINT_VERSION -RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v${GOLANGCILINT_VERSION} \ No newline at end of file +RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v${GOLANGCILINT_VERSION}