enable docker experimental feature to support docker manifest
@@ -49,6 +49,13 @@ jobs:
run: |
sudo apt-get install qemu-user-static
echo "./streampipes-backend/ ./streampipes-connect-container-master/ ./ui/" | xargs -n 1 cp -v /usr/bin/qemu-*
+ - name: Enable Docker experimental feature for multi-arch builds
+ run: |
+ sudo mkdir $HOME/.docker
+ sudo touch $HOME/.docker/config.json
+ echo '{"experimental": "enabled"}' | sudo tee $HOME/.docker/config.json
+ echo '{"experimental": true}' | sudo tee /etc/docker/daemon.json
+ sudo service docker restart
- name: Login to Docker Hub
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u ${{ secrets.DOCKERHUB_USER }} --password-stdin
- name: Build and Push Docker Backend Image
@@ -66,6 +73,10 @@ jobs:
docker push $IMG_NAME_AMD64
docker push $IMG_NAME_ARM32V7
docker push $IMG_NAME_ARM64V8
+ docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
+ docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
+ docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
+ docker manifest push $IMG_NAME_DEFAULT
- name: Build and Push Docker Connect Image
working-directory: ./streampipes-connect-container-master
env:
@@ -81,6 +92,10 @@ jobs:
docker push $IMG_NAME_AMD64
docker push $IMG_NAME_ARM32V7
docker push $IMG_NAME_ARM64V8
+ docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
+ docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
+ docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
+ docker manifest push $IMG_NAME_DEFAULT
- name: Build UI
working-directory: ./ui
run: |
@@ -103,3 +118,7 @@ jobs:
docker push $IMG_NAME_AMD64
docker push $IMG_NAME_ARM32V7
docker push $IMG_NAME_ARM64V8
+ docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
+ docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
+ docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
+ docker manifest push $IMG_NAME_DEFAULT
\ No newline at end of file
