@@ -24,7 +24,8 @@ ROOT:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
24
24
.DEFAULT_GOAL: =help
25
25
26
26
GO_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 )
28
29
29
30
# Use GOPROXY environment variable if set
30
31
GOPROXY := $(shell go env GOPROXY)
@@ -33,9 +34,21 @@ GOPROXY := https://proxy.golang.org
33
34
endif
34
35
export GOPROXY
35
36
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
+
36
47
# Active module mode, as we use go modules to manage dependencies
37
48
export GO111MODULE =on
38
49
50
+ BUILD_CONTAINER_ADDITIONAL_ARGS ?=
51
+
39
52
# This option is for running docker manifest command
40
53
export DOCKER_CLI_EXPERIMENTAL := enabled
41
54
@@ -372,13 +385,13 @@ modules: ## Runs go mod to ensure modules are up to date.
372
385
373
386
.PHONY : docker-pull-prerequisites
374
387
docker-pull-prerequisites :
375
- docker pull docker.io/docker/dockerfile:1.4
388
+ docker pull $( DOCKERFILE_CONTAINER_IMAGE )
376
389
docker pull $(GO_CONTAINER_IMAGE )
377
- docker pull gcr.io/distroless/static:latest
390
+ docker pull $( DEPLOYMENT_BASE_IMAGE ) : $( DEPLOYMENT_BASE_IMAGE_TAG )
378
391
379
392
.PHONY : docker-build
380
393
docker-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 )
382
395
383
396
.PHONY : docker-push
384
397
docker-push : # # Push the docker image
0 commit comments