Skip to content

Commit 8127914

Browse files
Merge pull request #81 from rdesingraj/main
Fix for docker containers nested names migration, where getting failed.
2 parents b458842 + a6b9c9f commit 8127914

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

scripts/migrate-docker-containers-between-github-instances.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,12 @@ packages=$(GH_HOST="$SOURCE_HOST" GH_TOKEN=$GH_SOURCE_PAT gh api --paginate "/or
6464
echo "$packages" | while IFS= read -r response; do
6565

6666
package_name=$(echo "$response" | cut -d ' ' -f 1)
67+
encoded_package_name=$(echo "$package_name" | sed 's/\//%2f/g')
6768
repo_name=$(echo "$response" | cut -d ' ' -f 2)
6869

6970
echo "org: $SOURCE_ORG repo: $repo_name --> package name $package_name"
70-
71-
versions=$(GH_HOST="$SOURCE_HOST" GH_TOKEN=$GH_SOURCE_PAT gh api --paginate "/orgs/$SOURCE_ORG/packages/container/$package_name/versions" -q '.[].metadata.container.tags[]' | sort -V)
71+
72+
versions=$(GH_HOST="$SOURCE_HOST" GH_TOKEN=$GH_SOURCE_PAT gh api --paginate "/orgs/$SOURCE_ORG/packages/container/$encoded_package_name/versions" -q '.[].metadata.container.tags[]' | sort -V)
7273
for version in $versions
7374
do
7475
echo " ... running docker pull $SOURCE_CONTAINER_REGISTRY/$SOURCE_ORG/$package_name:$version"
@@ -80,16 +81,16 @@ echo "$packages" | while IFS= read -r response; do
8081
if [ "$LINK_TO_REPOSITORY" = "true" ]; then
8182
echo " ... attempting to re-attach to target repo: $TARGET_ORG/$repo_name"
8283
# First, create a container from the image
83-
container_id=$(docker create $TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$package_name:$version || true)
84+
container_id=$(docker create $TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$encoded_package_name:$version || true)
8485
# Then, commit the container to a new image with the label
85-
docker commit --change "LABEL org.opencontainers.image.source=https://$TARGET_HOST/$TARGET_ORG/$repo_name" $container_id $TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$package_name:$version || true
86+
docker commit --change "LABEL org.opencontainers.image.source=https://$TARGET_HOST/$TARGET_ORG/$repo_name" $container_id $TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$encoded_package_name:$version || true
8687
# can also use --label "org.opencontainers.image.description=My container image" --label "org.opencontainers.image.licenses=MIT"
8788
# Remove the temporary container
8889
docker rm $container_id | true
8990
fi
9091

9192
echo " ... running docker push $TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$package_name:$version"
92-
docker push $TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$package_name:$version || echo "$TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$package_name:$version push failed" >> ghcr_target_failures.txt
93+
docker push $TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$package_name:$version || echo "$TARGET_CONTAINER_REGISTRY/$TARGET_ORG/$package_name:$version push failed" >> ghcr_target_failures.txt
9394
echo ""
9495
done
9596

0 commit comments

Comments
 (0)