From b85722cd4aa7b90588feed81a3576ea42b32a358 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Fri, 25 Jun 2021 00:38:30 -0700 Subject: [PATCH] fix Dockerfile.arm64 build --- Makefile | 18 ++++++++++++++++-- installers/linux/kvm/Dockerfile.arm64 | 19 ++++++++++++------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 881638ed1a..4b0fb68fc5 100644 --- a/Makefile +++ b/Makefile @@ -837,7 +837,7 @@ kvm-image-amd64: installers/linux/kvm/Dockerfile.amd64 ## Convenient alias to b .PHONY: kvm-image-arm64 kvm-image-arm64: installers/linux/kvm/Dockerfile.arm64 ## Convenient alias to build the docker container - docker build --build-arg "GO_VERSION=$(KVM_GO_VERSION)" -t $(KVM_BUILD_IMAGE_AMD64) -f $< $(dir $<) + docker build --build-arg "GO_VERSION=$(KVM_GO_VERSION)" -t $(KVM_BUILD_IMAGE_ARM64) -f $< $(dir $<) @echo "" @echo "$(@) successfully built" @@ -852,7 +852,21 @@ install-kvm-driver: out/docker-machine-driver-kvm2 ## Install KVM Driver cp out/docker-machine-driver-kvm2 $(GOBIN)/docker-machine-driver-kvm2 -out/docker-machine-driver-kvm2-aarch64: kvm-image-arm64 +out/docker-machine-driver-kvm2-arm64: +ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) + docker image inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE_ARM64) || $(MAKE) kvm-image-arm64 + $(call DOCKER,$(KVM_BUILD_IMAGE_ARM64),/usr/bin/make $@ COMMIT=$(COMMIT)) +else + $(if $(quiet),@echo " GO $@") + $(Q)GOARCH=arm64 \ + go build \ + -installsuffix "static" \ + -ldflags="$(KVM2_LDFLAGS)" \ + -tags "libvirt.1.3.1 without_lxc" \ + -o $@ \ + k8s.io/minikube/cmd/drivers/kvm +endif + chmod +X $@ out/docker-machine-driver-kvm2-%: ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) diff --git a/installers/linux/kvm/Dockerfile.arm64 b/installers/linux/kvm/Dockerfile.arm64 index 036c748297..247c367efe 100644 --- a/installers/linux/kvm/Dockerfile.arm64 +++ b/installers/linux/kvm/Dockerfile.arm64 @@ -14,22 +14,27 @@ FROM ubuntu:21.04 -RUN echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute main universe restricted multiverse" >> /etc/apt/sources.list +ARG GO_VERSION -RUN apt update && apt install -y \ +RUN apt update + +RUN echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute main universe multiverse" >> /etc/apt/sources.list && \ + echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute-updates main universe restricted multiverse" >> /etc/apt/sources.list && \ + dpkg --add-architecture arm64 && \ + (apt update || true) + +RUN apt install -y \ gcc-aarch64-linux-gnu \ make \ pkg-config \ - curl + curl \ + libvirt-dev:arm64 -RUN apt install -y libvirt-dev:arm64 - -ARG GO_VERSION RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xzf - ENV GOPATH /go -# CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 make out/docker-machine-driver-kvm2-arm64 ENV CC=aarch64-linux-gnu-gcc ENV CGO_ENABLED=1 +ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/go/bin