blob: 94f98ab3b6d66582d4ecd3233498097d068fb0bc [file] [log] [blame]
gio0eaf2712024-04-14 13:08:46 +04001repo_name ?= giolekva
2podman ?= docker
3ifeq ($(podman), podman)
giod8ab4f52024-07-26 16:58:34 +04004manifest_dest_golang_1_22_0=docker://docker.io/$(repo_name)/app-runner:golang-1.22.0
5manifest_dest_golang_1_20_0=docker://docker.io/$(repo_name)/app-runner:golang-1.20.0
6manifest_dest_hugo_latest=docker://docker.io/$(repo_name)/app-runner:hugo-latest
giob54db242024-07-30 18:49:33 +04007manifest_dest_php_8_2_apache=docker://docker.io/$(repo_name)/app-runner:php-8.2-apache
gio0eaf2712024-04-14 13:08:46 +04008endif
9
10clean:
11 rm -f app-runner
12
13build_arm64: export CGO_ENABLED=0
14build_arm64: export GO111MODULE=on
15build_arm64: export GOOS=linux
16build_arm64: export GOARCH=arm64
17build_arm64:
18 /usr/local/go/bin/go build -o app-runner_arm64 *.go
19
20build_amd64: export CGO_ENABLED=0
21build_amd64: export GO111MODULE=on
22build_amd64: export GOOS=linux
23build_amd64: export GOARCH=amd64
24build_amd64:
25 /usr/local/go/bin/go build -o app-runner_amd64 *.go
26
giod8ab4f52024-07-26 16:58:34 +040027# Golang 1.22.0
28
29push_golang_1_22_0_arm64: clean build_arm64
30 $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:golang-1.22.0-arm64 -f Dockerfile.golang.1.22.0 .
gio0eaf2712024-04-14 13:08:46 +040031 $(podman) push $(repo_name)/app-runner:golang-1.22.0-arm64
32
giod8ab4f52024-07-26 16:58:34 +040033push_golang_1_22_0_amd64: clean build_amd64
34 $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:golang-1.22.0-amd64 -f Dockerfile.golang.1.22.0 .
gio0eaf2712024-04-14 13:08:46 +040035 $(podman) push $(repo_name)/app-runner:golang-1.22.0-amd64
36
giod8ab4f52024-07-26 16:58:34 +040037push_golang_1_22_0: push_golang_1_22_0_arm64 push_golang_1_22_0_amd64
gio0eaf2712024-04-14 13:08:46 +040038 $(podman) manifest create $(repo_name)/app-runner:golang-1.22.0 $(repo_name)/app-runner:golang-1.22.0-arm64 $(repo_name)/app-runner:golang-1.22.0-amd64
giod8ab4f52024-07-26 16:58:34 +040039 $(podman) manifest push $(repo_name)/app-runner:golang-1.22.0 $(manifest_dest_golang_1_22_0)
gio0eaf2712024-04-14 13:08:46 +040040 $(podman) manifest rm $(repo_name)/app-runner:golang-1.22.0
gio03fd0c72024-06-18 12:31:42 +040041
giod8ab4f52024-07-26 16:58:34 +040042# Golang 1.20.0
43
44push_golang_1_20_0_arm64: clean build_arm64
45 $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:golang-1.20.0-arm64 -f Dockerfile.golang.1.20.0 .
46 $(podman) push $(repo_name)/app-runner:golang-1.20.0-arm64
47
48push_golang_1_20_0_amd64: clean build_amd64
49 $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:golang-1.20.0-amd64 -f Dockerfile.golang.1.20.0 .
50 $(podman) push $(repo_name)/app-runner:golang-1.20.0-amd64
51
52push_golang_1_20_0: push_golang_1_20_0_arm64 push_golang_1_20_0_amd64
53 $(podman) manifest create $(repo_name)/app-runner:golang-1.20.0 $(repo_name)/app-runner:golang-1.20.0-arm64 $(repo_name)/app-runner:golang-1.20.0-amd64
54 $(podman) manifest push $(repo_name)/app-runner:golang-1.20.0 $(manifest_dest_golang_1_20_0)
55 $(podman) manifest rm $(repo_name)/app-runner:golang-1.20.0
56
gio03fd0c72024-06-18 12:31:42 +040057# Hugo
58
59push_hugo_arm64: clean build_arm64
60 $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:hugo-latest-arm64 -f Dockerfile.hugo .
61 $(podman) push $(repo_name)/app-runner:hugo-latest-arm64
62
63push_hugo_amd64: clean build_amd64
64 $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:hugo-latest-amd64 -f Dockerfile.hugo .
65 $(podman) push $(repo_name)/app-runner:hugo-latest-amd64
66
67push_hugo: push_hugo_arm64 push_hugo_amd64
68 $(podman) manifest create $(repo_name)/app-runner:hugo-latest $(repo_name)/app-runner:hugo-latest-arm64 $(repo_name)/app-runner:hugo-latest-amd64
giod8ab4f52024-07-26 16:58:34 +040069 $(podman) manifest push $(repo_name)/app-runner:hugo-latest $(manifest_dest_hugo_latest)
gio03fd0c72024-06-18 12:31:42 +040070 $(podman) manifest rm $(repo_name)/app-runner:hugo-latest
giod8ab4f52024-07-26 16:58:34 +040071
giob54db242024-07-30 18:49:33 +040072# PHP
73
74push_php_8_2_apache_arm64: clean build_arm64
75 $(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:php-8.2-apache-arm64 -f Dockerfile.php.8.2.apache .
76 $(podman) push $(repo_name)/app-runner:php-8.2-apache-arm64
77
78push_php_8_2_apache_amd64: clean build_amd64
79 $(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:php-8.2-apache-amd64 -f Dockerfile.php.8.2.apache .
80 $(podman) push $(repo_name)/app-runner:php-8.2-apache-amd64
81
82push_php_8_2_apache: push_php_8_2_apache_arm64 push_php_8_2_apache_amd64
83 $(podman) manifest create $(repo_name)/app-runner:php-8.2-apache $(repo_name)/app-runner:php-8.2-apache-arm64 $(repo_name)/app-runner:php-8.2-apache-amd64
84 $(podman) manifest push $(repo_name)/app-runner:php-8.2-apache $(manifest_dest_php_8_2_apache)
85 $(podman) manifest rm $(repo_name)/app-runner:php-8.2-apache
86
giod8ab4f52024-07-26 16:58:34 +040087# all
giob54db242024-07-30 18:49:33 +040088push: push_golang_1_22_0 push_golang_1_20_0 push_hugo push_php_8_2_apache