2020-02-11 01:49:39 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# Use manifest-tool to create the manifest, given the experimental
|
|
|
|
# "docker manifest" command isn't available yet on Docker Hub.
|
|
|
|
|
2020-02-11 02:36:33 +00:00
|
|
|
TAG_ROOT=${DOCKER_TAG%-*}
|
2020-02-11 02:46:44 +00:00
|
|
|
TARGET_ARCH=""
|
|
|
|
case "$DOCKER_TAG" in
|
|
|
|
*amd64)
|
|
|
|
TARGET_ARCH="amd64"
|
|
|
|
;;
|
|
|
|
*arm32v5)
|
|
|
|
TARGET_ARCH="arm32v5"
|
|
|
|
;;
|
|
|
|
*arm32v6)
|
|
|
|
TARGET_ARCH="arm32v6"
|
|
|
|
;;
|
|
|
|
*arm32v7)
|
|
|
|
TARGET_ARCH="arm32v7"
|
|
|
|
;;
|
|
|
|
*arm64v8)
|
|
|
|
TARGET_ARCH="arm64v8"
|
|
|
|
;;
|
|
|
|
*i386)
|
|
|
|
TARGET_ARCH="i386"
|
|
|
|
;;
|
|
|
|
*ppc64le)
|
|
|
|
TARGET_ARCH="ppc64le"
|
|
|
|
;;
|
|
|
|
*s390x)
|
|
|
|
TARGET_ARCH="s390x"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "Unknown target arch, skip manifest push"
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
# If the tag is essentially only the arch, we use latest
|
|
|
|
if [[ "$TAG_ROOT" == "$TARGET_ARCH" ]]; then
|
|
|
|
TAG_ROOT="latest"
|
2020-02-11 02:36:33 +00:00
|
|
|
fi
|
|
|
|
|
2020-02-11 01:49:39 +00:00
|
|
|
curl -Lo manifest-tool https://github.com/estesp/manifest-tool/releases/download/v0.9.0/manifest-tool-linux-amd64
|
|
|
|
chmod +x manifest-tool
|
|
|
|
|
2020-02-11 02:36:33 +00:00
|
|
|
./manifest-tool push from-args \
|
|
|
|
--platforms "linux/$TARGET_ARCH" \
|
2020-02-11 02:46:44 +00:00
|
|
|
--template "$DOCKER_REPO:$DOCKER_TAG" \
|
|
|
|
--target "$DOCKER_REPO:$TAG_ROOT"
|