From 2a057151070e31249b52e73cd76bcfd44e7e53fa Mon Sep 17 00:00:00 2001
From: Philipp Heckel <pheckel@datto.com>
Date: Mon, 22 Nov 2021 10:46:19 -0500
Subject: [PATCH] Multi-platform Docker images

---
 .goreleaser.yml                               |  28 +++++++++++++-----
 .../{example-ssh.html => example-sse.html}    |   0
 server/static/img/favicon.png                 | Bin 5133 -> 5228 bytes
 3 files changed, 21 insertions(+), 7 deletions(-)
 rename examples/web-example-eventsource/{example-ssh.html => example-sse.html} (100%)

diff --git a/.goreleaser.yml b/.goreleaser.yml
index c887f6e..03c6440 100644
--- a/.goreleaser.yml
+++ b/.goreleaser.yml
@@ -78,12 +78,26 @@ changelog:
       - '^docs:'
       - '^test:'
 dockers:
-  - dockerfile: Dockerfile
-    ids:
-      - ntfy
-    goos: linux
+  - image_templates:
+      - &amd64_image "binwiederhier/ntfy:{{ .Tag }}-amd64"
+    use: buildx
+    dockerfile: Dockerfile
     goarch: amd64
+    build_flag_templates:
+      - "--platform=linux/amd64"
+  - image_templates:
+      - &arm64v8_image "binwiederhier/ntfy:{{ .Tag }}-arm64v8"
+    use: buildx
+    dockerfile: Dockerfile
+    goarch: arm64
+    build_flag_templates:
+      - "--platform=linux/arm64/v8"
+docker_manifests:
+  - name_template: "binwiederhier/ntfy:latest"
     image_templates:
-      - "binwiederhier/ntfy:latest"
-      - "binwiederhier/ntfy:{{ .Tag }}"
-      - "binwiederhier/ntfy:v{{ .Major }}.{{ .Minor }}"
+      - *amd64_image
+      - *arm64v8_image
+  - name_template: "binwiederhier/ntfy:{{ .Tag }}"
+    image_templates:
+      - *amd64_image
+      - *arm64v8_image
diff --git a/examples/web-example-eventsource/example-ssh.html b/examples/web-example-eventsource/example-sse.html
similarity index 100%
rename from examples/web-example-eventsource/example-ssh.html
rename to examples/web-example-eventsource/example-sse.html
diff --git a/server/static/img/favicon.png b/server/static/img/favicon.png
index 6f25954a9d6b8c0566c1621318cbae30d33018da..828f5f2568049a53bef7b19352658dcde528de18 100644
GIT binary patch
delta 5216
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
a;r{_{WC;UhLRatr0000<MNUMnLSTZ*?-nQk

delta 5120
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
S+V`xfN2RBI4_2dT9r|CbChTGW

-- 
GitLab