Skip to content

Instantly share code, notes, and snippets.

@micahyoung
Last active February 26, 2020 18:52
Show Gist options
  • Save micahyoung/2c41fd12bce34110ecd65a7e0a07c2c2 to your computer and use it in GitHub Desktop.
Save micahyoung/2c41fd12bce34110ecd65a7e0a07c2c2 to your computer and use it in GitHub Desktop.

Issue for mutate.Rebase with foreign layers

#!/bin/bash
set -o errexit -o pipefail -o nounset
# standup local registry in linux container
docker rm -f local-registry
docker run --name local-registry -p5000:5000 -d registry:2
# get specific image manifest
oldNanoserverDigest=$(crane manifest mcr.microsoft.com/windows/nanoserver:1803 2>/dev/null | jq -r .manifests[0].digest)
newNanoserverDigest=$(crane manifest mcr.microsoft.com/windows/nanoserver:1809 2>/dev/null | jq -r .manifests[0].digest)
oldNanoserverManifest="mcr.microsoft.com/windows/nanoserver@$oldNanoserverDigest"
newNanoserverManifest="mcr.microsoft.com/windows/nanoserver@$newNanoserverDigest"
golangOldNanoserverDigest=$(crane manifest golang:nanoserver-1803 2>/dev/null | jq -r .manifests[0].digest)
golangOldNanoserverManifest="index.docker.io/library/golang@$golangOldNanoserverDigest"
crane rebase \
--original $golangOldNanoserverManifest \
--rebased localhost:5000/golang-nanoserver-1809 \
--old_base $oldNanoserverManifest \
--new_base $newNanoserverManifest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment