@@ -24,7 +24,8 @@ ROOT:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
2424.DEFAULT_GOAL: =help
2525
2626GO_VERSION ?= 1.23.0
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,21 @@ 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+
41+ # Base docker images
42+
43+ DOCKERFILE_CONTAINER_IMAGE ?= docker.io/docker/dockerfile:1.4
44+ DEPLOYMENT_BASE_IMAGE ?= gcr.io/distroless/static
45+ DEPLOYMENT_BASE_IMAGE_TAG ?= nonroot-${ARCH}
46+
3647# Active module mode, as we use go modules to manage dependencies
3748export GO111MODULE =on
3849
50+ BUILD_CONTAINER_ADDITIONAL_ARGS ?=
51+
3952# This option is for running docker manifest command
4053export DOCKER_CLI_EXPERIMENTAL := enabled
4154
@@ -372,13 +385,13 @@ modules: ## Runs go mod to ensure modules are up to date.
372385
373386.PHONY : docker-pull-prerequisites
374387docker-pull-prerequisites :
375- docker pull docker.io/docker/dockerfile:1.4
388+ docker pull $( DOCKERFILE_CONTAINER_IMAGE )
376389 docker pull $(GO_CONTAINER_IMAGE )
377- docker pull gcr.io/distroless/static:latest
390+ docker pull $( DEPLOYMENT_BASE_IMAGE ) : $( DEPLOYMENT_BASE_IMAGE_TAG )
378391
379392.PHONY : docker-build
380393docker-build : docker-pull-prerequisites # # Build the docker image for controller-manager
381- docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg ARCH=$(ARCH ) --build-arg LDFLAGS=" $( LDFLAGS) " . -t $(CONTROLLER_IMG_TAG )
394+ 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_TAG )
382395
383396.PHONY : docker-push
384397docker-push : # # Push the docker image
0 commit comments