@@ -24,7 +24,8 @@ SHELL:=/usr/bin/env bash
2424# Go.
2525#
2626GO_VERSION ?= 1.22.9
27- GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION )
27+ GO_BASE_CONTAINER ?= docker.io/library/golang
28+ GO_CONTAINER_IMAGE ?= $(GO_BASE_CONTAINER ) :$(GO_VERSION )
2829
2930# Use GOPROXY environment variable if set
3031GOPROXY := $(shell go env GOPROXY)
@@ -33,9 +34,20 @@ GOPROXY := https://proxy.golang.org
3334endif
3435export GOPROXY
3536
37+ # Use GOPRIVATE environment variable if set
38+ GOPRIVATE := $(shell go env GOPRIVATE)
39+ export GOPRIVATE
40+
3641# Active module mode, as we use go modules to manage dependencies
3742export GO111MODULE =on
3843
44+ # Base docker images
45+
46+ DOCKERFILE_CONTAINER_IMAGE ?= docker.io/docker/dockerfile:1.4
47+ DEPLOYMENT_BASE_IMAGE ?= gcr.io/distroless/static
48+ DEPLOYMENT_BASE_IMAGE_TAG ?= nonroot-${ARCH}
49+ BUILD_CONTAINER_ADDITIONAL_ARGS ?=
50+
3951#
4052# Kubebuilder.
4153#
@@ -387,9 +399,9 @@ manager: ## Build the manager binary into the ./bin folder
387399
388400.PHONY : docker-pull-prerequisites
389401docker-pull-prerequisites :
390- docker pull docker.io/docker/dockerfile:1.4
402+ docker pull $( DOCKERFILE_CONTAINER_IMAGE )
391403 docker pull $(GO_CONTAINER_IMAGE )
392- docker pull gcr.io/distroless/static:latest
404+ docker pull $( DEPLOYMENT_BASE_IMAGE ) : $( DEPLOYMENT_BASE_IMAGE_TAG )
393405
394406.PHONY : docker-build-all
395407docker-build-all : $(addprefix docker-build-,$(ALL_ARCH ) ) # # Build docker images for all architectures
@@ -399,7 +411,7 @@ docker-build-%:
399411
400412.PHONY : docker-build
401413docker-build : docker-pull-prerequisites # # Build the docker image for core controller manager
402- DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg ldflags=" $( LDFLAGS) " . -t $(CONTROLLER_IMG ) -$(ARCH ) :$(TAG )
414+ DOCKER_BUILDKIT=1 docker build $( BUILD_CONTAINER_ADDITIONAL_ARGS ) --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg deployment_base_image= $( DEPLOYMENT_BASE_IMAGE ) --build-arg deployment_base_image_tag= $( DEPLOYMENT_BASE_IMAGE_TAG ) --build-arg goproxy=$(GOPROXY ) --build-arg goprivate= $( GOPRIVATE ) --build-arg ARCH=$(ARCH ) --build-arg ldflags=" $( LDFLAGS) " . -t $(CONTROLLER_IMG ) -$(ARCH ) :$(TAG )
403415 $(MAKE ) set-manifest-image MANIFEST_IMG=$(CONTROLLER_IMG ) -$(ARCH ) MANIFEST_TAG=$(TAG ) TARGET_RESOURCE=" ./config/default/manager_image_patch.yaml"
404416 $(MAKE ) set-manifest-pull-policy TARGET_RESOURCE=" ./config/default/manager_pull_policy.yaml"
405417
0 commit comments