build: docker and make files

Change-Id: Ie2804029cea2ad954b61b4055bc1895850ae54ed
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..79f54d9
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,5 @@
+FROM alpine:3.22.0
+
+ARG TARGETARCH
+
+COPY sketch_${TARGETARCH} /usr/bin/sketch
diff --git a/Makefile b/Makefile
index 2d0e134..18bf327 100644
--- a/Makefile
+++ b/Makefile
@@ -31,3 +31,43 @@
 
 clean:
 	./build/clean.sh
+
+
+
+# DODO
+
+repo_name ?= giolekva
+podman ?= docker
+docker_flags=--provenance=false --sbom=false
+ifeq ($(podman), podman)
+manifest_dest=docker://docker.io/$(repo_name)/sketch:latest
+endif
+
+clean:
+	rm -f sketch
+
+build_arm64: export CGO_ENABLED=0
+build_arm64: export GO111MODULE=on
+build_arm64: export GOOS=linux
+build_arm64: export GOARCH=arm64
+build_arm64:
+	go build -o sketch_arm64 cmd/sketch/*.go
+
+build_amd64: export CGO_ENABLED=0
+build_amd64: export GO111MODULE=on
+build_amd64: export GOOS=linux
+build_amd64: export GOARCH=amd64
+build_amd64:
+	go build -o sketch_amd64 cmd/sketch/*.go
+
+push_arm64: clean build_arm64
+	$(podman) build --platform linux/arm64 --tag=$(repo_name)/sketch:arm64 $(docker_flags) .
+	$(podman) push $(repo_name)/sketch:arm64
+
+push_amd64: clean build_amd64
+	$(podman) build --platform linux/amd64 --tag=$(repo_name)/sketch:amd64 $(docker_flags) .
+	$(podman) push $(repo_name)/sketch:amd64
+
+push: push_arm64 push_amd64
+	$(podman) manifest create $(repo_name)/sketch:latest $(repo_name)/sketch:arm64 $(repo_name)/sketch:amd64
+	$(podman) manifest push --purge $(repo_name)/sketch:latest $(manifest_dest)