Skip to content

Commit

Permalink
added multiarch docker build (ortuman#215)
Browse files Browse the repository at this point in the history
  • Loading branch information
ortuman authored Mar 4, 2022
1 parent 8bd65f8 commit c82acab
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 11 deletions.
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: check fmt vet lint generate test proto build install installctl dockerimage
.PHONY: check fmt vet lint generate test proto build install installctl push-dockerimage

generate:
@echo "Generating mock files..."
Expand Down Expand Up @@ -38,6 +38,6 @@ installctl:
@echo "Installing jackalctl binary..."
@bash scripts/installctl.sh

dockerimage:
@echo "Building docker image..."
push-dockerimage:
@echo "Pushing docker image..."
@bash scripts/dockerimage.sh
8 changes: 5 additions & 3 deletions dockerfiles/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
FROM debian:stable-slim
FROM --platform=$BUILDPLATFORM debian:stable-slim

ARG TARGETARCH

WORKDIR /jackal

Expand All @@ -7,8 +9,8 @@ LABEL org.label-schema.name="jackal"
LABEL org.label-schema.vendor="Miguel Ángel Ortuño"
LABEL maintainer="Miguel Ángel Ortuño <ortuman@protonmail.com>"

ADD build/jackal /jackal
ADD build/jackalctl /jackal
ADD build/$TARGETARCH/jackal /jackal
ADD build/$TARGETARCH/jackalctl /jackal

EXPOSE 5222

Expand Down
17 changes: 12 additions & 5 deletions scripts/dockerimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,15 @@ command -v docker >/dev/null 2>&1 || { echo 'Please install docker or use image
rm -rf build/
mkdir build

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo \
-ldflags "-s -w" -o "build/jackal" "github.com/ortuman/jackal/cmd/jackal"
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo \
-ldflags "-s -w" -o "build/jackalctl" "github.com/ortuman/jackal/cmd/jackalctl"
docker build -f dockerfiles/Dockerfile -t ortuman/jackal .
for arch in amd64 arm64
do
CGO_ENABLED=0 GOOS=linux GOARCH=${arch} go build -a -tags netgo \
-ldflags "-s -w" -o "build/${arch}/jackal" "github.com/ortuman/jackal/cmd/jackal"
CGO_ENABLED=0 GOOS=linux GOARCH=${arch} go build -a -tags netgo \
-ldflags "-s -w" -o "build/${arch}/jackalctl" "github.com/ortuman/jackal/cmd/jackalctl"

docker buildx build --platform linux/${arch} -f dockerfiles/Dockerfile .
done

docker buildx build --platform linux/amd64,linux/arm64 -t ortuman/jackal -o type=registry -f dockerfiles/Dockerfile .

0 comments on commit c82acab

Please sign in to comment.