From f547f2f3c0a948f2d59d646deeb6f87f610ce124 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 25 Nov 2022 11:46:51 +0100 Subject: [PATCH] Makefile: always use buildx Signed-off-by: CrazyMax (cherry picked from commit bade242dddafaa84151941d4f6754c4aa4c59a52) Signed-off-by: Sebastiaan van Stijn --- .github/workflows/test.yml | 2 -- Jenkinsfile | 12 ---------- Makefile | 45 +++++--------------------------------- 3 files changed, 6 insertions(+), 53 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1193acda50..be8f94d874 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,8 +19,6 @@ env: GOTESTLIST_VERSION: v0.2.0 TESTSTAT_VERSION: v0.1.3 ITG_CLI_MATRIX_SIZE: 6 - BUILDX: docker buildx - USE_BUILDX: 1 DOCKER_EXPERIMENTAL: 1 DOCKER_GRAPHDRIVER: overlay2 diff --git a/Jenkinsfile b/Jenkinsfile index 772d43f45f..9e9755a67a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -260,12 +260,6 @@ pipeline { } } agent { label 'ppc64le-ubuntu-1604' } - // ppc64le machines run on Docker 18.06, and buildkit has some - // bugs on that version. Build and use buildx instead. - environment { - USE_BUILDX = '1' - DOCKER_BUILDKIT = '0' - } stages { stage("Print info") { @@ -379,12 +373,6 @@ pipeline { } } agent { label 'ppc64le-ubuntu-1604' } - // ppc64le machines run on Docker 18.06, and buildkit has some - // bugs on that version. Build and use buildx instead. - environment { - USE_BUILDX = '1' - DOCKER_BUILDKIT = '0' - } stages { stage("Print info") { diff --git a/Makefile b/Makefile index cfe3c17e4b..3de756456a 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,7 @@ .PHONY: all binary dynbinary build cross help install manpages run shell test test-docker-py test-integration test-unit validate validate-% win -BUILDX_VERSION ?= v0.9.1 - -ifdef USE_BUILDX -BUILDX ?= $(shell command -v buildx) -BUILDX ?= $(shell command -v docker-buildx) -DOCKER_BUILDX_CLI_PLUGIN_PATH ?= ~/.docker/cli-plugins/docker-buildx -BUILDX ?= $(shell if [ -x "$(DOCKER_BUILDX_CLI_PLUGIN_PATH)" ]; then echo $(DOCKER_BUILDX_CLI_PLUGIN_PATH); fi) -endif - -ifndef USE_BUILDX -DOCKER_BUILDKIT := 1 -export DOCKER_BUILDKIT -endif - -BUILDX ?= bundles/buildx DOCKER ?= docker +BUILDX ?= $(DOCKER) buildx # set the graph driver as the current graphdriver if not set DOCKER_GRAPHDRIVER := $(if $(DOCKER_GRAPHDRIVER),$(DOCKER_GRAPHDRIVER),$(shell docker info 2>&1 | grep "Storage Driver" | sed 's/.*: //')) @@ -155,12 +141,7 @@ DOCKER_BUILD_ARGS += --build-arg=SYSTEMD=true endif BUILD_OPTS := ${BUILD_APT_MIRROR} ${DOCKER_BUILD_ARGS} ${DOCKER_BUILD_OPTS} -f "$(DOCKERFILE)" -ifdef USE_BUILDX -BUILD_OPTS += $(BUILDX_BUILD_EXTRA_OPTS) BUILD_CMD := $(BUILDX) build -else -BUILD_CMD := $(DOCKER) build -endif # This is used for the legacy "build" target and anything still depending on it BUILD_CROSS = @@ -178,14 +159,14 @@ default: binary all: build ## validate all checks, build linux binaries, run all tests,\ncross build non-linux binaries, and generate archives $(DOCKER_RUN_DOCKER) bash -c 'hack/validate/default && hack/make.sh' -binary: buildx ## build statically linked linux binaries +binary: bundles ## build statically linked linux binaries $(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ $(VERSION_AUTOGEN_ARGS) . -dynbinary: buildx ## build dynamically linked linux binaries +dynbinary: bundles ## build dynamically linked linux binaries $(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ $(VERSION_AUTOGEN_ARGS) . cross: BUILD_OPTS += --build-arg CROSS=true --build-arg DOCKER_CROSSPLATFORMS -cross: buildx ## cross build the binaries for darwin, freebsd and\nwindows +cross: bundles ## cross build the binaries for darwin, freebsd and\nwindows $(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ $(VERSION_AUTOGEN_ARGS) . bundles: @@ -213,11 +194,8 @@ build: shell_target := --target=dev else build: shell_target := --target=final endif -ifdef USE_BUILDX -build: buildx_load := --load -endif -build: buildx - $(BUILD_CMD) $(BUILD_OPTS) $(shell_target) $(buildx_load) $(BUILD_CROSS) -t "$(DOCKER_IMAGE)" . +build: bundles + $(BUILD_CMD) $(BUILD_OPTS) $(shell_target) --load $(BUILD_CROSS) -t "$(DOCKER_IMAGE)" . shell: build ## start a shell inside the build env $(DOCKER_RUN_DOCKER) bash @@ -268,14 +246,3 @@ swagger-docs: ## preview the API documentation -e 'REDOC_OPTIONS=hide-hostname="true" lazy-rendering' \ -p $(SWAGGER_DOCS_PORT):80 \ bfirsh/redoc:1.14.0 - -.PHONY: buildx -ifdef USE_BUILDX -ifeq ($(BUILDX), bundles/buildx) -buildx: bundles/buildx ## build buildx cli tool -endif -endif - -bundles/buildx: bundles ## build buildx CLI tool - curl -fsSL https://raw.githubusercontent.com/moby/buildkit/70deac12b5857a1aa4da65e90b262368e2f71500/hack/install-buildx | VERSION="$(BUILDX_VERSION)" BINDIR="$(@D)" bash - $@ version