From a5a82bb411ee5f168f0704824ca0ecde139ffb9a Mon Sep 17 00:00:00 2001 From: Vegard Stikbakke Date: Tue, 18 Jun 2024 13:06:54 +0200 Subject: [PATCH] Build Docker images for both arm and amd --- .github/workflows/build.yaml | 5 +++++ Makefile | 18 +++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1a61b43..d2b804f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -29,6 +29,11 @@ jobs: id: login-ecr uses: aws-actions/amazon-ecr-login@v1 + - name: Install prerequisites for Docker build + run: | + sudo apt-get update + sudo apt-get install -y qemu-user-static + - env: GITHUB_TOKEN: ${{ secrets.DUNE_ENG_ACCESS_TOKEN }} ECR_REGISTRY: public.ecr.aws/duneanalytics diff --git a/Makefile b/Makefile index 00b99d4..f418f5a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ .PHONY: all setup lint build test image-build image-push -APPLICATION := indexer GITHUB_SHA ?= HEAD REF_TAG := $(shell echo ${GITHUB_REF_NAME} | tr -cd '[:alnum:]') IMAGE_TAG := ${ECR_REGISTRY}/${ECR_REPOSITORY}:${REF_TAG}-$(shell git rev-parse --short "${GITHUB_SHA}")-${GITHUB_RUN_NUMBER} @@ -38,11 +37,16 @@ gen-mocks: bin/moq ./client/jsonrpc/ ./client/duneapi/ image-build: - @echo "# Building indexer docker image..." - docker build -t $(APPLICATION) -f Dockerfile --build-arg GITHUB_TOKEN=${GITHUB_TOKEN} . + @echo "# Building indexer docker image for amd64 and arm64" + docker buildx build --platform linux/amd64 -t ${IMAGE_TAG}-amd64 -f Dockerfile --build-arg GITHUB_TOKEN=${GITHUB_TOKEN} . + docker buildx build --platform linux/arm64 -t ${IMAGE_TAG}-arm64 -f Dockerfile --build-arg GITHUB_TOKEN=${GITHUB_TOKEN} . image-push: image-build - @echo "# Pushing indexer docker image..." - docker tag $(APPLICATION) ${IMAGE_TAG} - # docker push ${IMAGE_TAG} - docker rmi ${IMAGE_TAG} + @echo "# Pushing indexer docker images" + # docker manifest create --insecure "${IMAGE_TAG}" "${IMAGE_TAG}-amd64" + # docker manifest create -a "${IMAGE_TAG}" "${IMAGE_TAG}-arm64" --insecure + # docker manifest push "${IMAGE_TAG}" --insecure + # docker push "${IMAGE_TAG}-amd64" + # docker push "${IMAGE_TAG}-arm64" + # docker rmi "${IMAGE_TAG}-amd64" + # docker rmi "${IMAGE_TAG}-arm64"