# Based on https://netfuture.ch/2020/05/multi-arch-docker-image-easy/
#
-# Example: make -f Makefile.docker docker-multiarch
+# Example: make -f Makefile.docker docker-multiarch (TAG=latest)
REGISTRY = cznic
BASETAG = ${REGISTRY}/knot-resolver
PLATFORMS = linux/amd64,linux/arm/v7,linux/arm64/v8
+ARGS = --build-arg FASTPARSER=enable --build-arg CHECK=disable
+
+GITHASH = $(shell git rev-parse --short HEAD)
+GITBRANCH = $(shell git rev-parse --abbrev-ref HEAD)
RELEASE = $(shell git describe --abbrev=0 --exact-match)
+DATE = $(shell date +%Y%m%d)
+BRANCHTAG = $(shell [ -n "${GITBRANCH}" ] && echo "-t ${BASETAG}:${GITBRANCH}" || echo "")
RELTAG = $(shell [ -n "${RELEASE}" ] && echo "-t ${BASETAG}:${RELEASE}" || echo "")
+DATETAG = $(shell [ -n "${RELEASE}" ] && echo "-t ${BASETAG}:${RELEASE}-${DATE}" || echo "")
+EXTRATAG = $(shell [ -n "${TAG}" ] && echo "-t ${BASETAG}:${TAG}" || echo "")
+LABEL = $(shell [ -n "${GITHASH}" ] && echo "--label knot.git.hash=${GITHASH}" || echo "")
+
BUILDXDETECT = ${HOME}/.docker/cli-plugins/docker-buildx
QEMUDETECT = /proc/sys/fs/binfmt_misc/qemu-m68k
-# https://stackoverflow.com/a/324782
-ROOT_DIR:=$(dir $(realpath $(lastword $(MAKEFILE_LIST))))/..
-
docker-multiarch: qemu buildx docker-multiarch-builder
docker login
- docker buildx build --no-cache --builder docker-multiarch --pull --push \
- --platform ${PLATFORMS} ${RELTAG} ${ROOT_DIR}
+ docker buildx build --no-cache --builder docker-multiarch --pull --push ${LABEL} \
+ --platform ${PLATFORMS} ${ARGS} ${BRANCHTAG} ${RELTAG} ${DATETAG} ${EXTRATAG} ..
qemu: ${QEMUDETECT}
${QEMUDETECT}:
docker buildx inspect --builder docker-multiarch --bootstrap; \
fi
-.PHONY: qemu buildx docker-multiarch docker-multiarch-builder
\ No newline at end of file
+.PHONY: qemu buildx docker-multiarch docker-multiarch-builder