Set up buildx when building containers

This commit is contained in:
Tim Hockin 2022-08-18 16:50:15 -07:00
parent 12a1d1e298
commit 98446f45f4
2 changed files with 7 additions and 10 deletions

2
.gitignore vendored
View File

@ -3,5 +3,5 @@
/.push-* /.push-*
/.container-* /.container-*
/.dockerfile-* /.dockerfile-*
/.qemu-initialized /.buildx-initialized
/.licenses /.licenses

View File

@ -159,7 +159,7 @@ $(LICENSES):
ALLOW_STALE_APT ?= ALLOW_STALE_APT ?=
container: .container-$(DOTFILE_IMAGE) container-name container: .container-$(DOTFILE_IMAGE) container-name
.container-$(DOTFILE_IMAGE): bin/$(OS)_$(ARCH)/$(BIN) $(LICENSES) Dockerfile.in .container-$(DOTFILE_IMAGE): bin/$(OS)_$(ARCH)/$(BIN) $(LICENSES) Dockerfile.in .buildx-initialized
sed \ sed \
-e 's|{ARG_BIN}|$(BIN)|g' \ -e 's|{ARG_BIN}|$(BIN)|g' \
-e 's|{ARG_ARCH}|$(ARCH)|g' \ -e 's|{ARG_ARCH}|$(ARCH)|g' \
@ -173,6 +173,7 @@ container: .container-$(DOTFILE_IMAGE) container-name
FORCE=0; \ FORCE=0; \
if [ -z "$(ALLOW_STALE_APT)" ]; then FORCE=$$(date +%s); fi; \ if [ -z "$(ALLOW_STALE_APT)" ]; then FORCE=$$(date +%s); fi; \
docker buildx build \ docker buildx build \
--builder git-sync \
--build-arg FORCE_REBUILD="$$FORCE" \ --build-arg FORCE_REBUILD="$$FORCE" \
--build-arg HASH_LICENSES="$$HASH_LICENSES" \ --build-arg HASH_LICENSES="$$HASH_LICENSES" \
--build-arg HASH_BINARY="$$HASH_BINARY" \ --build-arg HASH_BINARY="$$HASH_BINARY" \
@ -247,13 +248,9 @@ test-tools: $(foreach tool, $(TEST_TOOLS), .container-test_tool.$(tool))
# installed. If you already have a buildx builder available, you don't need # installed. If you already have a buildx builder available, you don't need
# this. See https://medium.com/@artur.klauser/building-multi-architecture-docker-images-with-buildx-27d80f7e2408 # this. See https://medium.com/@artur.klauser/building-multi-architecture-docker-images-with-buildx-27d80f7e2408
# for great context. # for great context.
multiarch-build-tools: .qemu-initialized .buildx-initialized:
docker buildx create --name git-sync --node git-sync-0 docker buildx create --name git-sync --node git-sync-0 >/dev/null
docker buildx use git-sync docker run --rm --privileged multiarch/qemu-user-static --reset -p yes >/dev/null
docker buildx inspect --bootstrap
.qemu-initialized:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
date > $@ date > $@
$(BUILD_DIRS): $(BUILD_DIRS):
@ -262,7 +259,7 @@ $(BUILD_DIRS):
clean: container-clean bin-clean clean: container-clean bin-clean
container-clean: container-clean:
rm -rf .container-* .dockerfile-* .push-* .qemu-initialized $(LICENSES) rm -rf .container-* .dockerfile-* .push-* .buildx-initialized $(LICENSES)
bin-clean: bin-clean:
rm -rf .go bin rm -rf .go bin