Add docker cross-compile for arm64

This makes use of the docker buildx to cross-compile images for amd64/arm64. It is worth noting that there are ongoing issues with the Go compiler and qemu (used by buildx/buildkit) and the solution I ended up using here was to limit the affinity to `go build`. Better solutions may be forthcoming.

Refs:
https://github.com/golang/go/issues/24656
https://bugs.launchpad.net/qemu/+bug/1696773

This relates to issue #11 regarding container images built for running on Raspberry Pi.
This commit is contained in:
chris
2020-08-14 13:48:33 -04:00
committed by Chris Marshall
parent 1e1edac3a5
commit f92180af5e
5 changed files with 30 additions and 9 deletions

View File

@ -9,9 +9,13 @@ q3: gen
gen: ## Generate and embed templates
@go run tools/genstatic.go public public
VERSION ?= v1.0.2
VERSION ?= v1.0.3
IMAGE ?= docker.io/criticalstack/quake:$(VERSION)
.PHONY: build
build:
@docker build . --force-rm --build-arg GOPROXY --build-arg GOSUMDB -t $(IMAGE)
.PHONY: buildx
buildx:
@docker buildx build . --platform=linux/amd64,linux/arm64 --progress=auto -t $(IMAGE) --push