Updated binfmt targets
This commit is contained in:
@@ -50,20 +50,6 @@ build:images:amd64:
|
|||||||
paths:
|
paths:
|
||||||
- "./dist/"
|
- "./dist/"
|
||||||
|
|
||||||
build:images:arm32v7:
|
|
||||||
stage: "build:images"
|
|
||||||
only:
|
|
||||||
- *regex_version
|
|
||||||
before_script:
|
|
||||||
- *cmd_install_build_packages
|
|
||||||
script:
|
|
||||||
- "make binfmt-register"
|
|
||||||
- "make build-arm32v7-image save-arm32v7-image"
|
|
||||||
artifacts:
|
|
||||||
expire_in: "1 week"
|
|
||||||
paths:
|
|
||||||
- "./dist/"
|
|
||||||
|
|
||||||
build:images:arm64v8:
|
build:images:arm64v8:
|
||||||
stage: "build:images"
|
stage: "build:images"
|
||||||
only:
|
only:
|
||||||
@@ -78,6 +64,20 @@ build:images:arm64v8:
|
|||||||
paths:
|
paths:
|
||||||
- "./dist/"
|
- "./dist/"
|
||||||
|
|
||||||
|
build:images:arm32v7:
|
||||||
|
stage: "build:images"
|
||||||
|
only:
|
||||||
|
- *regex_version
|
||||||
|
before_script:
|
||||||
|
- *cmd_install_build_packages
|
||||||
|
script:
|
||||||
|
- "make binfmt-register"
|
||||||
|
- "make build-arm32v7-image save-arm32v7-image"
|
||||||
|
artifacts:
|
||||||
|
expire_in: "1 week"
|
||||||
|
paths:
|
||||||
|
- "./dist/"
|
||||||
|
|
||||||
push:images:amd64:
|
push:images:amd64:
|
||||||
stage: "push:images"
|
stage: "push:images"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -90,18 +90,6 @@ push:images:amd64:
|
|||||||
script:
|
script:
|
||||||
- "make load-amd64-image push-amd64-image"
|
- "make load-amd64-image push-amd64-image"
|
||||||
|
|
||||||
push:images:arm32v7:
|
|
||||||
stage: "push:images"
|
|
||||||
dependencies:
|
|
||||||
- "build:images:arm32v7"
|
|
||||||
only:
|
|
||||||
- *regex_version
|
|
||||||
before_script:
|
|
||||||
- *cmd_install_push_packages
|
|
||||||
- *cmd_docker_login_registry
|
|
||||||
script:
|
|
||||||
- "make load-arm32v7-image push-arm32v7-image"
|
|
||||||
|
|
||||||
push:images:arm64v8:
|
push:images:arm64v8:
|
||||||
stage: "push:images"
|
stage: "push:images"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -114,12 +102,24 @@ push:images:arm64v8:
|
|||||||
script:
|
script:
|
||||||
- "make load-arm64v8-image push-arm64v8-image"
|
- "make load-arm64v8-image push-arm64v8-image"
|
||||||
|
|
||||||
|
push:images:arm32v7:
|
||||||
|
stage: "push:images"
|
||||||
|
dependencies:
|
||||||
|
- "build:images:arm32v7"
|
||||||
|
only:
|
||||||
|
- *regex_version
|
||||||
|
before_script:
|
||||||
|
- *cmd_install_push_packages
|
||||||
|
- *cmd_docker_login_registry
|
||||||
|
script:
|
||||||
|
- "make load-arm32v7-image push-arm32v7-image"
|
||||||
|
|
||||||
push:manifests:cross:
|
push:manifests:cross:
|
||||||
stage: "push:manifests"
|
stage: "push:manifests"
|
||||||
dependencies:
|
dependencies:
|
||||||
- "push:images:amd64"
|
- "push:images:amd64"
|
||||||
- "push:images:arm32v7"
|
|
||||||
- "push:images:arm64v8"
|
- "push:images:arm64v8"
|
||||||
|
- "push:images:arm32v7"
|
||||||
only:
|
only:
|
||||||
- *regex_version
|
- *regex_version
|
||||||
variables:
|
variables:
|
||||||
|
|||||||
88
Makefile
88
Makefile
@@ -27,12 +27,12 @@ IMAGE_NATIVE_TARBALL := $(DISTDIR)/$(IMAGE_PROJECT).txz
|
|||||||
IMAGE_AMD64_DOCKERFILE := $(DISTDIR)/Dockerfile.amd64
|
IMAGE_AMD64_DOCKERFILE := $(DISTDIR)/Dockerfile.amd64
|
||||||
IMAGE_AMD64_TARBALL := $(DISTDIR)/$(IMAGE_PROJECT).amd64.txz
|
IMAGE_AMD64_TARBALL := $(DISTDIR)/$(IMAGE_PROJECT).amd64.txz
|
||||||
|
|
||||||
IMAGE_ARM32V7_DOCKERFILE := $(DISTDIR)/Dockerfile.arm32v7
|
|
||||||
IMAGE_ARM32V7_TARBALL := $(DISTDIR)/$(IMAGE_PROJECT).arm32v7.txz
|
|
||||||
|
|
||||||
IMAGE_ARM64V8_DOCKERFILE := $(DISTDIR)/Dockerfile.arm64v8
|
IMAGE_ARM64V8_DOCKERFILE := $(DISTDIR)/Dockerfile.arm64v8
|
||||||
IMAGE_ARM64V8_TARBALL := $(DISTDIR)/$(IMAGE_PROJECT).arm64v8.txz
|
IMAGE_ARM64V8_TARBALL := $(DISTDIR)/$(IMAGE_PROJECT).arm64v8.txz
|
||||||
|
|
||||||
|
IMAGE_ARM32V7_DOCKERFILE := $(DISTDIR)/Dockerfile.arm32v7
|
||||||
|
IMAGE_ARM32V7_TARBALL := $(DISTDIR)/$(IMAGE_PROJECT).arm32v7.txz
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
## "all" target
|
## "all" target
|
||||||
##################################################
|
##################################################
|
||||||
@@ -59,7 +59,7 @@ $(IMAGE_NATIVE_DOCKERFILE): $(DOCKERFILE_TEMPLATE)
|
|||||||
--file '$@' ./
|
--file '$@' ./
|
||||||
|
|
||||||
.PHONY: build-cross-images
|
.PHONY: build-cross-images
|
||||||
build-cross-images: build-amd64-image build-arm32v7-image build-arm64v8-image
|
build-cross-images: build-amd64-image build-arm64v8-image build-arm32v7-image
|
||||||
|
|
||||||
.PHONY: build-amd64-image
|
.PHONY: build-amd64-image
|
||||||
build-amd64-image: $(IMAGE_AMD64_DOCKERFILE)
|
build-amd64-image: $(IMAGE_AMD64_DOCKERFILE)
|
||||||
@@ -77,21 +77,6 @@ $(IMAGE_AMD64_DOCKERFILE): $(DOCKERFILE_TEMPLATE)
|
|||||||
--tag '$(IMAGE_NAME):latest-amd64' \
|
--tag '$(IMAGE_NAME):latest-amd64' \
|
||||||
--file '$@' ./
|
--file '$@' ./
|
||||||
|
|
||||||
.PHONY: build-arm32v7-image
|
|
||||||
build-arm32v7-image: $(IMAGE_ARM32V7_DOCKERFILE)
|
|
||||||
|
|
||||||
$(IMAGE_ARM32V7_DOCKERFILE): $(DOCKERFILE_TEMPLATE)
|
|
||||||
mkdir -p '$(DISTDIR)'
|
|
||||||
'$(M4)' \
|
|
||||||
--prefix-builtins \
|
|
||||||
-D CROSS_ARCH=arm32v7 \
|
|
||||||
-D CROSS_QEMU=/usr/bin/qemu-arm-static \
|
|
||||||
'$(DOCKERFILE_TEMPLATE)' | cat --squeeze-blank > '$@'
|
|
||||||
'$(DOCKER)' build \
|
|
||||||
--tag '$(IMAGE_NAME):$(IMAGE_VERSION)-arm32v7' \
|
|
||||||
--tag '$(IMAGE_NAME):latest-arm32v7' \
|
|
||||||
--file '$@' ./
|
|
||||||
|
|
||||||
.PHONY: build-arm64v8-image
|
.PHONY: build-arm64v8-image
|
||||||
build-arm64v8-image: $(IMAGE_ARM64V8_DOCKERFILE)
|
build-arm64v8-image: $(IMAGE_ARM64V8_DOCKERFILE)
|
||||||
|
|
||||||
@@ -107,6 +92,21 @@ $(IMAGE_ARM64V8_DOCKERFILE): $(DOCKERFILE_TEMPLATE)
|
|||||||
--tag '$(IMAGE_NAME):latest-arm64v8' \
|
--tag '$(IMAGE_NAME):latest-arm64v8' \
|
||||||
--file '$@' ./
|
--file '$@' ./
|
||||||
|
|
||||||
|
.PHONY: build-arm32v7-image
|
||||||
|
build-arm32v7-image: $(IMAGE_ARM32V7_DOCKERFILE)
|
||||||
|
|
||||||
|
$(IMAGE_ARM32V7_DOCKERFILE): $(DOCKERFILE_TEMPLATE)
|
||||||
|
mkdir -p '$(DISTDIR)'
|
||||||
|
'$(M4)' \
|
||||||
|
--prefix-builtins \
|
||||||
|
-D CROSS_ARCH=arm32v7 \
|
||||||
|
-D CROSS_QEMU=/usr/bin/qemu-arm-static \
|
||||||
|
'$(DOCKERFILE_TEMPLATE)' | cat --squeeze-blank > '$@'
|
||||||
|
'$(DOCKER)' build \
|
||||||
|
--tag '$(IMAGE_NAME):$(IMAGE_VERSION)-arm32v7' \
|
||||||
|
--tag '$(IMAGE_NAME):latest-arm32v7' \
|
||||||
|
--file '$@' ./
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
## "save-*" targets
|
## "save-*" targets
|
||||||
##################################################
|
##################################################
|
||||||
@@ -122,7 +122,7 @@ $(IMAGE_NATIVE_TARBALL): $(IMAGE_NATIVE_DOCKERFILE)
|
|||||||
$(call save_image,$(IMAGE_NAME):$(IMAGE_VERSION),$@)
|
$(call save_image,$(IMAGE_NAME):$(IMAGE_VERSION),$@)
|
||||||
|
|
||||||
.PHONY: save-cross-images
|
.PHONY: save-cross-images
|
||||||
save-cross-images: save-amd64-image save-arm32v7-image save-arm64v8-image
|
save-cross-images: save-amd64-image save-arm64v8-image save-arm32v7-image
|
||||||
|
|
||||||
.PHONY: save-amd64-image
|
.PHONY: save-amd64-image
|
||||||
save-amd64-image: $(IMAGE_AMD64_TARBALL)
|
save-amd64-image: $(IMAGE_AMD64_TARBALL)
|
||||||
@@ -130,18 +130,18 @@ save-amd64-image: $(IMAGE_AMD64_TARBALL)
|
|||||||
$(IMAGE_AMD64_TARBALL): $(IMAGE_AMD64_DOCKERFILE)
|
$(IMAGE_AMD64_TARBALL): $(IMAGE_AMD64_DOCKERFILE)
|
||||||
$(call save_image,$(IMAGE_NAME):$(IMAGE_VERSION)-amd64,$@)
|
$(call save_image,$(IMAGE_NAME):$(IMAGE_VERSION)-amd64,$@)
|
||||||
|
|
||||||
.PHONY: save-arm32v7-image
|
|
||||||
save-arm32v7-image: $(IMAGE_ARM32V7_TARBALL)
|
|
||||||
|
|
||||||
$(IMAGE_ARM32V7_TARBALL): $(IMAGE_ARM32V7_DOCKERFILE)
|
|
||||||
$(call save_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm32v7,$@)
|
|
||||||
|
|
||||||
.PHONY: save-arm64v8-image
|
.PHONY: save-arm64v8-image
|
||||||
save-arm64v8-image: $(IMAGE_ARM64V8_TARBALL)
|
save-arm64v8-image: $(IMAGE_ARM64V8_TARBALL)
|
||||||
|
|
||||||
$(IMAGE_ARM64V8_TARBALL): $(IMAGE_ARM64V8_DOCKERFILE)
|
$(IMAGE_ARM64V8_TARBALL): $(IMAGE_ARM64V8_DOCKERFILE)
|
||||||
$(call save_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm64v8,$@)
|
$(call save_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm64v8,$@)
|
||||||
|
|
||||||
|
.PHONY: save-arm32v7-image
|
||||||
|
save-arm32v7-image: $(IMAGE_ARM32V7_TARBALL)
|
||||||
|
|
||||||
|
$(IMAGE_ARM32V7_TARBALL): $(IMAGE_ARM32V7_DOCKERFILE)
|
||||||
|
$(call save_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm32v7,$@)
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
## "load-*" targets
|
## "load-*" targets
|
||||||
##################################################
|
##################################################
|
||||||
@@ -160,23 +160,23 @@ load-native-image:
|
|||||||
$(call tag_image,$(IMAGE_NAME):$(IMAGE_VERSION),$(IMAGE_NAME):latest)
|
$(call tag_image,$(IMAGE_NAME):$(IMAGE_VERSION),$(IMAGE_NAME):latest)
|
||||||
|
|
||||||
.PHONY: load-cross-images
|
.PHONY: load-cross-images
|
||||||
load-cross-images: load-amd64-image load-arm32v7-image load-arm64v8-image
|
load-cross-images: load-amd64-image load-arm64v8-image load-arm32v7-image
|
||||||
|
|
||||||
.PHONY: load-amd64-image
|
.PHONY: load-amd64-image
|
||||||
load-amd64-image:
|
load-amd64-image:
|
||||||
$(call load_image,$(IMAGE_AMD64_TARBALL))
|
$(call load_image,$(IMAGE_AMD64_TARBALL))
|
||||||
$(call tag_image,$(IMAGE_NAME):$(IMAGE_VERSION)-amd64,$(IMAGE_NAME):latest-amd64)
|
$(call tag_image,$(IMAGE_NAME):$(IMAGE_VERSION)-amd64,$(IMAGE_NAME):latest-amd64)
|
||||||
|
|
||||||
.PHONY: load-arm32v7-image
|
|
||||||
load-arm32v7-image:
|
|
||||||
$(call load_image,$(IMAGE_ARM32V7_TARBALL))
|
|
||||||
$(call tag_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm32v7,$(IMAGE_NAME):latest-arm32v7)
|
|
||||||
|
|
||||||
.PHONY: load-arm64v8-image
|
.PHONY: load-arm64v8-image
|
||||||
load-arm64v8-image:
|
load-arm64v8-image:
|
||||||
$(call load_image,$(IMAGE_ARM64V8_TARBALL))
|
$(call load_image,$(IMAGE_ARM64V8_TARBALL))
|
||||||
$(call tag_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm64v8,$(IMAGE_NAME):latest-arm64v8)
|
$(call tag_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm64v8,$(IMAGE_NAME):latest-arm64v8)
|
||||||
|
|
||||||
|
.PHONY: load-arm32v7-image
|
||||||
|
load-arm32v7-image:
|
||||||
|
$(call load_image,$(IMAGE_ARM32V7_TARBALL))
|
||||||
|
$(call tag_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm32v7,$(IMAGE_NAME):latest-arm32v7)
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
## "push-*" targets
|
## "push-*" targets
|
||||||
##################################################
|
##################################################
|
||||||
@@ -186,10 +186,10 @@ define push_image
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define push_cross_manifest
|
define push_cross_manifest
|
||||||
'$(DOCKER)' manifest create --amend '$(1)' '$(2)-amd64' '$(2)-arm32v7' '$(2)-arm64v8'
|
'$(DOCKER)' manifest create --amend '$(1)' '$(2)-amd64' '$(2)-arm64v8' '$(2)-arm32v7'
|
||||||
'$(DOCKER)' manifest annotate '$(1)' '$(2)-amd64' --os linux --arch amd64
|
'$(DOCKER)' manifest annotate '$(1)' '$(2)-amd64' --os linux --arch amd64
|
||||||
'$(DOCKER)' manifest annotate '$(1)' '$(2)-arm32v7' --os linux --arch arm --variant v7
|
|
||||||
'$(DOCKER)' manifest annotate '$(1)' '$(2)-arm64v8' --os linux --arch arm64 --variant v8
|
'$(DOCKER)' manifest annotate '$(1)' '$(2)-arm64v8' --os linux --arch arm64 --variant v8
|
||||||
|
'$(DOCKER)' manifest annotate '$(1)' '$(2)-arm32v7' --os linux --arch arm --variant v7
|
||||||
'$(DOCKER)' manifest push --purge '$(1)'
|
'$(DOCKER)' manifest push --purge '$(1)'
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@@ -198,23 +198,23 @@ push-native-image:
|
|||||||
@printf '%s\n' 'Unimplemented'
|
@printf '%s\n' 'Unimplemented'
|
||||||
|
|
||||||
.PHONY: push-cross-images
|
.PHONY: push-cross-images
|
||||||
push-cross-images: push-amd64-image push-arm32v7-image push-arm64v8-image
|
push-cross-images: push-amd64-image push-arm64v8-image push-arm32v7-image
|
||||||
|
|
||||||
.PHONY: push-amd64-image
|
.PHONY: push-amd64-image
|
||||||
push-amd64-image:
|
push-amd64-image:
|
||||||
$(call push_image,$(IMAGE_NAME):$(IMAGE_VERSION)-amd64)
|
$(call push_image,$(IMAGE_NAME):$(IMAGE_VERSION)-amd64)
|
||||||
$(call push_image,$(IMAGE_NAME):latest-amd64)
|
$(call push_image,$(IMAGE_NAME):latest-amd64)
|
||||||
|
|
||||||
.PHONY: push-arm32v7-image
|
|
||||||
push-arm32v7-image:
|
|
||||||
$(call push_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm32v7)
|
|
||||||
$(call push_image,$(IMAGE_NAME):latest-arm32v7)
|
|
||||||
|
|
||||||
.PHONY: push-arm64v8-image
|
.PHONY: push-arm64v8-image
|
||||||
push-arm64v8-image:
|
push-arm64v8-image:
|
||||||
$(call push_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm64v8)
|
$(call push_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm64v8)
|
||||||
$(call push_image,$(IMAGE_NAME):latest-arm64v8)
|
$(call push_image,$(IMAGE_NAME):latest-arm64v8)
|
||||||
|
|
||||||
|
.PHONY: push-arm32v7-image
|
||||||
|
push-arm32v7-image:
|
||||||
|
$(call push_image,$(IMAGE_NAME):$(IMAGE_VERSION)-arm32v7)
|
||||||
|
$(call push_image,$(IMAGE_NAME):latest-arm32v7)
|
||||||
|
|
||||||
push-cross-manifest:
|
push-cross-manifest:
|
||||||
$(call push_cross_manifest,$(IMAGE_NAME):$(IMAGE_VERSION),$(IMAGE_NAME):$(IMAGE_VERSION))
|
$(call push_cross_manifest,$(IMAGE_NAME):$(IMAGE_VERSION),$(IMAGE_NAME):$(IMAGE_VERSION))
|
||||||
$(call push_cross_manifest,$(IMAGE_NAME):latest,$(IMAGE_NAME):latest)
|
$(call push_cross_manifest,$(IMAGE_NAME):latest,$(IMAGE_NAME):latest)
|
||||||
@@ -225,11 +225,11 @@ push-cross-manifest:
|
|||||||
|
|
||||||
.PHONY: binfmt-register
|
.PHONY: binfmt-register
|
||||||
binfmt-register:
|
binfmt-register:
|
||||||
'$(DOCKER)' run --rm --privileged docker.io/multiarch/qemu-user-static:register
|
'$(DOCKER)' run --rm --privileged docker.io/hectormolinero/qemu-user-static:latest
|
||||||
|
|
||||||
.PHONY: binfmt-reset
|
.PHONY: binfmt-reset
|
||||||
binfmt-reset:
|
binfmt-reset:
|
||||||
'$(DOCKER)' run --rm --privileged docker.io/multiarch/qemu-user-static:register --reset
|
'$(DOCKER)' run --rm --privileged docker.io/hectormolinero/qemu-user-static:latest --reset
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
## "version" target
|
## "version" target
|
||||||
@@ -253,6 +253,6 @@ version:
|
|||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
rm -f '$(IMAGE_NATIVE_DOCKERFILE)' '$(IMAGE_AMD64_DOCKERFILE)' '$(IMAGE_ARM32V7_DOCKERFILE)' '$(IMAGE_ARM64V8_DOCKERFILE)'
|
rm -f '$(IMAGE_NATIVE_DOCKERFILE)' '$(IMAGE_AMD64_DOCKERFILE)' '$(IMAGE_ARM64V8_DOCKERFILE)' '$(IMAGE_ARM32V7_DOCKERFILE)'
|
||||||
rm -f '$(IMAGE_NATIVE_TARBALL)' '$(IMAGE_AMD64_TARBALL)' '$(IMAGE_ARM32V7_TARBALL)' '$(IMAGE_ARM64V8_TARBALL)'
|
rm -f '$(IMAGE_NATIVE_TARBALL)' '$(IMAGE_AMD64_TARBALL)' '$(IMAGE_ARM64V8_TARBALL)' '$(IMAGE_ARM32V7_TARBALL)'
|
||||||
if [ -d '$(DISTDIR)' ] && [ -z "$$(ls -A '$(DISTDIR)')" ]; then rmdir '$(DISTDIR)'; fi
|
if [ -d '$(DISTDIR)' ] && [ -z "$$(ls -A '$(DISTDIR)')" ]; then rmdir '$(DISTDIR)'; fi
|
||||||
|
|||||||
Reference in New Issue
Block a user