diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index db08a0b..5f669c4 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -11,19 +11,68 @@ jobs:
   build_and_push:
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/checkout@v3
-    - name: Build the container image
-      run: docker build .
-             --file Dockerfile
-             --tag ${REGISTRY_GHCR}/${CONTAINER_NAME}:${{ github.ref_name }}
-             --tag ${REGISTRY_GHCR}/${CONTAINER_NAME}:latest
-             --tag ${REGISTRY_QUAY}/${CONTAINER_NAME}:${{ github.ref_name }}
-             --tag ${REGISTRY_QUAY}/${CONTAINER_NAME}:latest
-    - name: Login into the GitHub Container Registry
-      run: echo "${{ secrets.GHCR_TOKEN }}" | docker login ${REGISTRY_GHCR} --username "${{ vars.GHCR_USER }}" --password-stdin
-    - name: Login into the Quay Container Registry
-      run: echo "${{ secrets.QUAY_ROBOT_TOKEN }}" | docker login ${REGISTRY_QUAY} --username "${{ vars.QUAY_ROBOT_NAME }}" --password-stdin
-    - name: Push the image into the GitHub Container Registry
-      run: docker push --all-tags ${REGISTRY_GHCR}/${CONTAINER_NAME}
-    - name: Push the image into the Quay Container Registry
-      run: docker push --all-tags ${REGISTRY_QUAY}/${CONTAINER_NAME}
+    - uses: actions/checkout@v4
+
+    - name: Docker meta
+      id: meta
+      uses: docker/metadata-action@v3
+      with:
+        images: |
+          ${REGISTRY_GHCR}/${CONTAINER_NAME}:latest
+          ${REGISTRY_GHCR}/${CONTAINER_NAME}:${{ github.ref_name }}
+          ${REGISTRY_QUAY}/${CONTAINER_NAME}:latest
+          ${REGISTRY_QUAY}/${CONTAINER_NAME}:${{ github.ref_name }}
+#        images: mmul-it/kpa-marp-pandoc
+#        images: mmul-it/${CONTAINER_NAME}
+#        images: ${CONTAINER_NAME}:${{ github.ref_name }}
+
+    - name: Set up QEMU
+      uses: docker/setup-qemu-action@v3
+
+    - name: Set up Docker Buildx
+      uses: docker/setup-buildx-action@v3
+      with:
+        platforms: linux/amd64,linux/arm64
+
+    - name: Login to ghcr
+      if: github.event_name != 'pull_request'
+      uses: docker/login-action@v3
+      with:
+        registry: ghcr.io
+        username: ${{ vars.GHCR_USER }}
+        password: ${{ secrets.GHCR_TOKEN }}
+
+    - name: Login to quay
+      if: github.event_name != 'pull_request'
+      uses: docker/login-action@v3
+      with:
+        registry: quay.io
+        username: ${{ vars.QUAY_ROBOT_NAME }}
+        password: ${{ secrets.QUAY_ROBOT_TOKEN }}
+
+    - name: Build and push
+      uses: docker/build-push-action@v5
+      with:
+        context: .
+        push: ${{ github.event_name != 'pull_request' }}
+#        tags: mmul-it/${CONTAINER_NAME}:latest
+        tags: ${{ steps.meta.outputs.tags }}
+#,mmul-it/${CONTAINER_NAME}:${{ github.ref_name }}
+#        labels: ${{ steps.meta.outputs.labels }}
+
+#    - name: Login to quay
+#      if: github.event_name != 'pull_request'
+#      uses: docker/login-action@v3
+#      with:
+#        registry: quay.io
+#        username: ${{ vars.GHCR_USER }}
+#        password: ${{ secrets.GHCR_TOKEN }}
+#
+#    - name: Build and push
+#      uses: docker/build-push-action@v5
+#      with:
+#        context: .
+#        push: ${{ github.event_name != 'pull_request' }}
+#        tags: mmul/${CONTAINER_NAME}:latest
+##,mmul/${CONTAINER_NAME}:${{ github.ref_name }}
+#        labels: ${{ steps.meta.outputs.labels }}