Build multi-arch container images across stack
diff --git a/apps/matrix/capture-config/.gitignore b/apps/matrix/capture-config/.gitignore
index 1ebbf4c..82a3515 100644
--- a/apps/matrix/capture-config/.gitignore
+++ b/apps/matrix/capture-config/.gitignore
@@ -1 +1,2 @@
-capture-config
+capture-config_arm64
+capture-config_amd64
diff --git a/apps/matrix/capture-config/Dockerfile b/apps/matrix/capture-config/Dockerfile
index 87f358c..bcecf7b 100644
--- a/apps/matrix/capture-config/Dockerfile
+++ b/apps/matrix/capture-config/Dockerfile
@@ -1,4 +1,6 @@
FROM alpine:latest
-COPY capture-config /usr/bin
+ARG TARGETARCH
+
+COPY capture-config_${TARGETARCH} /usr/bin/capture-config
RUN chmod +x /usr/bin/capture-config
diff --git a/apps/matrix/capture-config/Makefile b/apps/matrix/capture-config/Makefile
index 6e3ddec..c05687d 100644
--- a/apps/matrix/capture-config/Makefile
+++ b/apps/matrix/capture-config/Makefile
@@ -1,17 +1,21 @@
clean:
- rm -f capture-config
+ rm -f capture-config_*
-build: clean
- go build -o capture-config *.go
+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 capture-config_arm64 *.go
-image: build
- docker build --tag=giolekva/capture-config:latest . --platform=linux/arm64
+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 capture-config_amd64 *.go
-push: image
- docker push giolekva/capture-config:latest
+build: clean build_arm64 build_amd64
-push_arm64: export GOOS=linux
-push_arm64: export GOARCH=arm64
-push_arm64: export CGO_ENABLED=0
-push_arm64: export GO111MODULE=on
-push_arm64: push
+push: build
+ docker buildx build --tag=giolekva/capture-config:latest . --platform=linux/arm64,linux/amd64 --push