18 lines
540 B
Bash
18 lines
540 B
Bash
#!/bin/bash
|
|
|
|
# Tags an already existing image version in a remote registry without needing to pull/push the whole image
|
|
#
|
|
# Usage:
|
|
# /bin/docker-remote-tag <repo-name> <existing-tag> <new-tag>
|
|
#
|
|
|
|
REPOSITORY="$1"
|
|
TAG_OLD="$2"
|
|
TAG_NEW="$3"
|
|
|
|
CONTENT_TYPE="application/vnd.docker.distribution.manifest.v2+json"
|
|
|
|
MANIFEST=$(curl -H "Accept: ${CONTENT_TYPE}" "${DOCKER_REGISTRY}/v2/${REPOSITORY}/manifests/${TAG_OLD}")
|
|
|
|
curl -X PUT -H "Content-Type: ${CONTENT_TYPE}" -d "${MANIFEST}" "${DOCKER_REGISTRY}/v2/${REPOSITORY}/manifests/${TAG_NEW}"
|