diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
index 671d66df7828a3ab32bc57fc7b30d2786b7ea60c..9cc5c73afbec7e3a6f746cd528a30f1e70d25e73 100644
--- a/.github/workflows/docker-image.yml
+++ b/.github/workflows/docker-image.yml
@@ -21,7 +21,14 @@ jobs:
         with:
          username: ${{ secrets.DOCKER_USER }}
          password: ${{ secrets.DOCKER_PASSWORD }}
-      - name: Build the Docker image
-        run: docker build ./dev/docker --file dev/docker/Dockerfile --tag ${{ secrets.DOCKER_USER }}/rdpgw:$(date +%s)
-      - name: Publish
-        run: docker push ${{ secrets.DOCKER_USER }}/rdpgw
+      -
+        name: Build and push
+        uses: docker/build-push-action@v2
+        with:
+          context: ./dev/docker
+          file: ./dev/docker/Dockerfile
+          platforms: linux/amd64,linux/arm64
+          push: true
+          tags: ${{ secrets.DOCKER_USER }}/rdpgw:${{ env.BRANCH }}
+          build-args: |
+            BRANCH=${{ env.BRANCH }}