If you're on DockerHub and hitting rate limits or privacy concerns, migrating is straightforward. Here's a script that retaggs and repushes your images.
$ fastpanel registry migrate --from dockerhub --repo myorg/myapp
Authenticating with DockerHub...
Found 23 tags to migrate
Migrating latest ... done (1.2s)
Migrating v2.1.0 ... done (0.9s)
Migrating v2.0.3 ... done (1.1s)
... 20 more tags
Migration complete. Update your CI_REGISTRY to registry.fastpanel.app
One-time migration script
#!/bin/bash
DOCKERHUB_TEAM="myteam"
FP_TEAM="myteam"
IMAGES=("app" "worker" "nginx-proxy")
docker login
docker login registry.fastpanel.app
for IMAGE in "${IMAGES[@]}"; do
# Get all tags
TAGS=$(curl -s "https://registry.hub.docker.com/v2/repositories/${DOCKERHUB_TEAM}/${IMAGE}/tags/" | jq -r '.results[].name')
for TAG in $TAGS; do
docker pull "${DOCKERHUB_TEAM}/${IMAGE}:${TAG}"
docker tag "${DOCKERHUB_TEAM}/${IMAGE}:${TAG}" "registry.fastpanel.app/${FP_TEAM}/${IMAGE}:${TAG}"
docker push "registry.fastpanel.app/${FP_TEAM}/${IMAGE}:${TAG}"
done
done
Update your CI/CD
Replace references to docker.io/myteam/ with registry.fastpanel.app/myteam/
in your pipeline configs. If you're using Kubernetes, update your Deployments and image pull secrets.