#!/bin/bash # Use manifest-tool to create the manifest, given the experimental # "docker manifest" command isn't available yet on Docker Hub. MANIFEST_TOOL_VERSION=$(curl -s https://api.github.com/repos/estesp/manifest-tool/releases/latest | grep 'tag_name' | cut -d\" -f4) curl -Lo manifest-tool https://github.com/estesp/manifest-tool/releases/download/$MANIFEST_TOOL_VERSION/manifest-tool-linux-amd64 chmod +x manifest-tool # Generate the manifest file. # Parameter 1 is the multi-arch image name, e.g. rss-bridge/rss-bridge:stable function generate_manifest { cat > manifest-generated.yaml << EOF image: $1 manifests: - image: $1-amd64 platform: architecture: amd64 os: linux - image: $1-arm32v7 platform: architecture: arm os: linux variant: v7 - image: $1-arm64v8 platform: architecture: arm64 os: linux variant: v8 EOF } echo "Pushing multi-arch manifest $IMAGE_NAME" generate_manifest $IMAGE_NAME ./manifest-tool push from-spec manifest-generated.yaml