From 4aee669532c1ca3cf08b5adf8e0b8ac3ecc5e3f6 Mon Sep 17 00:00:00 2001 From: adilhusain-s <95226191+adilhusain-s@users.noreply.github.com> Date: Thu, 22 Dec 2022 21:56:47 +0530 Subject: [PATCH] Adding multi-arch support for linux-ppc64le for router (#2605) * Updating router Dockefile for multi-arch support Signed-off-by: adilhusain-s * Adding multiple architectures in CI for router docker image Signed-off-by: adilhusain-s Signed-off-by: adilhusain-s --- .github/workflows/router-docker-publish.yml | 36 ++++++++++++++------- router.Dockerfile | 2 +- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/.github/workflows/router-docker-publish.yml b/.github/workflows/router-docker-publish.yml index 3ab6166811b..e670c654b3f 100644 --- a/.github/workflows/router-docker-publish.yml +++ b/.github/workflows/router-docker-publish.yml @@ -15,6 +15,7 @@ on: env: IMAGE_NAME: router + DOCKER_USER: ${{ secrets.DOCKER_USER }} jobs: # Run tests. @@ -46,15 +47,21 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Build image - run: docker build . --file router.Dockerfile --tag $IMAGE_NAME + - name: Setup QEMU + uses: docker/setup-qemu-action@v2 - - name: Log into registry - run: docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASSWORD }} + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v2 - - name: Push image + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: export version variable run: | - IMAGE_ID=kserve/$IMAGE_NAME + IMAGE_ID=$DOCKER_USER/$IMAGE_NAME # Change all uppercase to lowercase IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') @@ -68,9 +75,14 @@ jobs: # Use Docker `latest` tag convention [ "$VERSION" == "master" ] && VERSION=latest - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - + echo VERSION=$VERSION >> $GITHUB_ENV + echo IMAGE_ID=$IMAGE_ID >> $GITHUB_ENV + + - name: Build and push + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x + context: . + file: router.Dockerfile + push: true + tags: ${{ env.IMAGE_ID }}:${{ env.VERSION }} diff --git a/router.Dockerfile b/router.Dockerfile index abc27e4608f..388cdb83b90 100644 --- a/router.Dockerfile +++ b/router.Dockerfile @@ -12,7 +12,7 @@ COPY pkg/ pkg/ COPY cmd/ cmd/ # Build -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o router ./cmd/router +RUN CGO_ENABLED=0 go build -a -o router ./cmd/router # Copy the inference-router into a thin image FROM gcr.io/distroless/static:latest