Build: Fix multi-arch docker builds
Change-Id: I3968065215b696256ee819e2062ab1d3cadfcbcf
diff --git a/apps/app-repository/Makefile b/apps/app-repository/Makefile
index b9d7bc2..09b9a8c 100644
--- a/apps/app-repository/Makefile
+++ b/apps/app-repository/Makefile
@@ -1,3 +1,10 @@
+repo_name ?= giolekva
+podman ?= docker
+docker_flags=--provenance=false --sbom=false
+ifeq ($(podman), podman)
+manifest_dest=docker://docker.io/$(repo_name)/app-repository:latest
+endif
+
clean:
rm -f server_*
@@ -16,18 +23,14 @@
go build -o server_amd64 cmd/*.go
push_arm64: clean build_arm64
- podman build --platform linux/arm64 --tag=giolekva/app-repository:arm64 .
- podman push giolekva/app-repository:arm64
+ $(podman) build --platform linux/arm64 --tag=giolekva/app-repository:arm64 $(docker_flags) .
+ $(podman) push giolekva/app-repository:arm64
push_amd64: clean build_amd64
- podman build --platform linux/amd64 --tag=giolekva/app-repository:amd64 .
- podman push giolekva/app-repository:amd64
+ $(podman) build --platform linux/amd64 --tag=giolekva/app-repository:amd64 $(docker_flags) .
+ $(podman) push giolekva/app-repository:amd64
push: push_arm64 push_amd64
- podman manifest create giolekva/app-repository:latest giolekva/app-repository:arm64 giolekva/app-repository:amd64
- podman manifest push giolekva/app-repository:latest docker://docker.io/giolekva/app-repository:latest
- podman manifest rm giolekva/app-repository:latest
-
-run:
- go run cmd/*.go
+ $(podman) manifest create giolekva/app-repository:latest giolekva/app-repository:arm64 giolekva/app-repository:amd64
+ $(podman) manifest push --purge giolekva/app-repository:latest $(manifest_dest)
diff --git a/apps/app-runner/Makefile b/apps/app-runner/Makefile
index 8f11f8b..72fcb79 100644
--- a/apps/app-runner/Makefile
+++ b/apps/app-runner/Makefile
@@ -1,5 +1,6 @@
repo_name ?= giolekva
podman ?= docker
+docker_flags=--provenance=false --sbom=false
ifeq ($(podman), podman)
manifest_dest_golang_1_24_0=docker://docker.io/$(repo_name)/app-runner:golang-1.24.0
manifest_dest_golang_1_22_0=docker://docker.io/$(repo_name)/app-runner:golang-1.22.0
@@ -30,11 +31,11 @@
# Golang 1.24.0
push_golang_1_24_0_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:golang-1.24.0-arm64 -f Dockerfile.golang.1.24.0 .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:golang-1.24.0-arm64 -f Dockerfile.golang.1.24.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:golang-1.24.0-arm64
push_golang_1_24_0_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:golang-1.24.0-amd64 -f Dockerfile.golang.1.24.0 .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:golang-1.24.0-amd64 -f Dockerfile.golang.1.24.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:golang-1.24.0-amd64
push_golang_1_24_0: push_golang_1_24_0_arm64 push_golang_1_24_0_amd64
@@ -45,11 +46,11 @@
# Golang 1.22.0
push_golang_1_22_0_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:golang-1.22.0-arm64 -f Dockerfile.golang.1.22.0 .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:golang-1.22.0-arm64 -f Dockerfile.golang.1.22.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:golang-1.22.0-arm64
push_golang_1_22_0_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:golang-1.22.0-amd64 -f Dockerfile.golang.1.22.0 .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:golang-1.22.0-amd64 -f Dockerfile.golang.1.22.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:golang-1.22.0-amd64
push_golang_1_22_0: push_golang_1_22_0_arm64 push_golang_1_22_0_amd64
@@ -60,11 +61,11 @@
# Golang 1.20.0
push_golang_1_20_0_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:golang-1.20.0-arm64 -f Dockerfile.golang.1.20.0 .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:golang-1.20.0-arm64 -f Dockerfile.golang.1.20.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:golang-1.20.0-arm64
push_golang_1_20_0_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:golang-1.20.0-amd64 -f Dockerfile.golang.1.20.0 .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:golang-1.20.0-amd64 -f Dockerfile.golang.1.20.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:golang-1.20.0-amd64
push_golang_1_20_0: push_golang_1_20_0_arm64 push_golang_1_20_0_amd64
@@ -75,11 +76,11 @@
# Hugo
push_hugo_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:hugo-latest-arm64 -f Dockerfile.hugo .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:hugo-latest-arm64 -f Dockerfile.hugo $(docker_flags) .
$(podman) push $(repo_name)/app-runner:hugo-latest-arm64
push_hugo_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:hugo-latest-amd64 -f Dockerfile.hugo .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:hugo-latest-amd64 -f Dockerfile.hugo $(docker_flags) .
$(podman) push $(repo_name)/app-runner:hugo-latest-amd64
push_hugo: push_hugo_arm64 push_hugo_amd64
@@ -90,11 +91,11 @@
# PHP
push_php_8_2_apache_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:php-8.2-apache-arm64 -f Dockerfile.php.8.2.apache .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:php-8.2-apache-arm64 -f Dockerfile.php.8.2.apache $(docker_flags) .
$(podman) push $(repo_name)/app-runner:php-8.2-apache-arm64
push_php_8_2_apache_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:php-8.2-apache-amd64 -f Dockerfile.php.8.2.apache .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:php-8.2-apache-amd64 -f Dockerfile.php.8.2.apache $(docker_flags) .
$(podman) push $(repo_name)/app-runner:php-8.2-apache-amd64
push_php_8_2_apache: push_php_8_2_apache_arm64 push_php_8_2_apache_amd64
@@ -105,11 +106,11 @@
# Nextjs
push_nextjs_deno_2_0_0_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:nextjs-deno-2.0.0-arm64 -f Dockerfile.nextjs.deno.2.0.0 .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:nextjs-deno-2.0.0-arm64 -f Dockerfile.nextjs.deno.2.0.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:nextjs-deno-2.0.0-arm64
push_nextjs_deno_2_0_0_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:nextjs-deno-2.0.0-amd64 -f Dockerfile.nextjs.deno.2.0.0 .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:nextjs-deno-2.0.0-amd64 -f Dockerfile.nextjs.deno.2.0.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:nextjs-deno-2.0.0-amd64
push_nextjs_deno_2_0_0: push_nextjs_deno_2_0_0_arm64 push_nextjs_deno_2_0_0_amd64
@@ -120,17 +121,16 @@
# Nextjs
push_nodejs_23_1_0_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:nodejs-23.1.0-arm64 -f Dockerfile.nodejs.23.1.0 .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:nodejs-23.1.0-arm64 -f Dockerfile.nodejs.23.1.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:nodejs-23.1.0-arm64
push_nodejs_23_1_0_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:nodejs-23.1.0-amd64 -f Dockerfile.nodejs.23.1.0 .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:nodejs-23.1.0-amd64 -f Dockerfile.nodejs.23.1.0 $(docker_flags) .
$(podman) push $(repo_name)/app-runner:nodejs-23.1.0-amd64
push_nodejs_23_1_0: push_nodejs_23_1_0_arm64 push_nodejs_23_1_0_amd64
$(podman) manifest create $(repo_name)/app-runner:nodejs-23.1.0 $(repo_name)/app-runner:nodejs-23.1.0-arm64 $(repo_name)/app-runner:nodejs-23.1.0-amd64
- $(podman) manifest push $(repo_name)/app-runner:nodejs-23.1.0 $(manifest_dest_nodejs_23_1_0)
- $(podman) manifest rm $(repo_name)/app-runner:nodejs-23.1.0
+ $(podman) manifest push --purge $(repo_name)/app-runner:nodejs-23.1.0 $(manifest_dest_nodejs_23_1_0)
# all
push: push_golang_1_22_0 push_golang_1_20_0 push_hugo push_php_8_2_apache push_nextjs_deno_2_0_0 push_nodejs_23_1_0
diff --git a/apps/capture-config/Makefile b/apps/capture-config/Makefile
index 1a65580..b9e7776 100644
--- a/apps/capture-config/Makefile
+++ b/apps/capture-config/Makefile
@@ -1,5 +1,6 @@
repo_name ?= giolekva
podman ?= docker
+docker_flags=--provenance=false --sbom=false
ifeq ($(podman), podman)
manifest_dest=docker://docker.io/$(repo_name)/capture-config:latest
endif
@@ -22,14 +23,13 @@
go build -o capture-config_amd64 *.go
push_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/capture-config:arm64 .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/capture-config:arm64 $(docker_flags) .
$(podman) push $(repo_name)/capture-config:arm64
push_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/capture-config:amd64 .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/capture-config:amd64 $(docker_flags) .
$(podman) push $(repo_name)/capture-config:amd64
push: push_arm64 push_amd64
$(podman) manifest create $(repo_name)/capture-config:latest $(repo_name)/capture-config:arm64 $(repo_name)/capture-config:amd64
- $(podman) manifest push $(repo_name)/capture-config:latest $(manifest_dest)
- $(podman) manifest rm $(repo_name)/capture-config:latest
+ $(podman) manifest push --purge $(repo_name)/capture-config:latest $(manifest_dest)
diff --git a/apps/rpuppy/Makefile b/apps/rpuppy/Makefile
index a85dbda..97c7944 100644
--- a/apps/rpuppy/Makefile
+++ b/apps/rpuppy/Makefile
@@ -1,5 +1,6 @@
-repo_name ?= dtabidze
+repo_name ?= giolekva
podman ?= docker
+docker_flags=--provenance=false --sbom=false
ifeq ($(podman), podman)
manifest_dest=docker://docker.io/$(repo_name)/rpuppy:latest
endif
@@ -22,14 +23,13 @@
go build -o rpuppy_amd64 *.go
push_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/rpuppy:arm64 .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/rpuppy:arm64 $(docker_flags) .
$(podman) push $(repo_name)/rpuppy:arm64
push_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/rpuppy:amd64 .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/rpuppy:amd64 $(docker_flags) .
$(podman) push $(repo_name)/rpuppy:amd64
push: push_arm64 push_amd64
$(podman) manifest create $(repo_name)/rpuppy:latest $(repo_name)/rpuppy:arm64 $(repo_name)/rpuppy:amd64
- $(podman) manifest push $(repo_name)/rpuppy:latest $(manifest_dest)
- $(podman) manifest rm $(repo_name)/rpuppy:latest
+ $(podman) manifest push --purge $(repo_name)/rpuppy:latest $(manifest_dest)
diff --git a/apps/url-shortener/Makefile b/apps/url-shortener/Makefile
index 9fbc4c4..2dd8864 100644
--- a/apps/url-shortener/Makefile
+++ b/apps/url-shortener/Makefile
@@ -1,6 +1,6 @@
repo_name ?= giolekva
-podman ?= podman
-manifest_dest =
+podman ?= docker
+docker_flags=--provenance=false --sbom=false
ifeq ($(podman), podman)
manifest_dest=docker://docker.io/$(repo_name)/url-shortener:latest
endif
@@ -24,14 +24,13 @@
/usr/local/go/bin/go build -o url-shortener_amd64 *.go
push_arm64: clean build_arm64
- $(podman) build --platform linux/arm64 --tag=$(repo_name)/url-shortener:arm64 .
+ $(podman) build --platform linux/arm64 --tag=$(repo_name)/url-shortener:arm64 $(docker_flags) .
$(podman) push $(repo_name)/url-shortener:arm64
push_amd64: clean build_amd64
- $(podman) build --platform linux/amd64 --tag=$(repo_name)/url-shortener:amd64 .
+ $(podman) build --platform linux/amd64 --tag=$(repo_name)/url-shortener:amd64 $(docker_flags) .
$(podman) push $(repo_name)/url-shortener:amd64
push: push_arm64 push_amd64
$(podman) manifest create $(repo_name)/url-shortener:latest $(repo_name)/url-shortener:arm64 $(repo_name)/url-shortener:amd64
- $(podman) manifest push $(repo_name)/url-shortener:latest $(manifest_dest)
- $(podman) manifest rm $(repo_name)/url-shortener:latest
+ $(podman) manifest push --purge $(repo_name)/url-shortener:latest $(manifest_dest)