#!/bin/bash # Use manifest-tool to create the manifest, given the experimental # "docker manifest" command isn't available yet on Docker Hub. curl -Lo manifest-tool https://github.com/estesp/manifest-tool/releases/download/v0.9.0/manifest-tool-linux-amd64 chmod +x manifest-tool # Generate the manifest file. # Parameter 1 is the multi-arch image name, e.g. ckulka/baikal:0.5.1 # Parameter 2 is the base-image for the variants, e.g. ckulka/baikal:0.5.1-apache function generate_manifest { cat > manifest-generated.yaml << EOF image: $1 manifests: - image: $2-amd64 platform: architecture: amd64 os: linux - image: $2-arm32v7 platform: architecture: arm os: linux variant: v7 - image: $2-arm64v8 platform: architecture: arm64 os: linux variant: v8 EOF } echo "Pushing multi-arch manifest $IMAGE_NAME" generate_manifest $IMAGE_NAME $IMAGE_NAME ./manifest-tool push from-spec manifest-generated.yaml