aws_account_id="620970939130" # example account ID
source_registry="quay.io/cortexlabs"
destination_ecr_prefix="cortexlabs"
destination_registry="${aws_account_id}.dkr.ecr.${ecr_region}.amazonaws.com/${destination_ecr_prefix}"
aws ecr get-login-password --region $ecr_region | docker login --username AWS --password-stdin $destination_registry
# images for the APIs (you may delete any images that your APIs don't use)
"python-predictor-cpu-slim"
"python-predictor-gpu-slim"
"python-predictor-inf-slim"
"tensorflow-predictor-slim"
"onnx-predictor-cpu-slim"
"onnx-predictor-gpu-slim"
images=( "${cluster_images[@]}" "${api_images[@]}" )
extra_tags_for_slim_python_predictor=(
# create the image repositories
for image in "${images[@]}"; do
aws ecr create-repository --repository-name=$destination_ecr_prefix/$image --region=$ecr_region || true
# pull the images from Docker Hub and push them to ECR
for image in "${images[@]}"; do
if [ "$image" = "python-predictor-gpu-slim" ]; then
for extra_tag in "${extra_tags_for_slim_python_predictor[@]}"; do
echo "copying $image:$cortex_version-$extra_tag from $source_registry to $destination_registry"
skopeo copy --src-no-creds "docker://$source_registry/$image:$cortex_version-$extra_tag" "docker://$destination_registry/$image:$cortex_version-$extra_tag"
echo "copying $image:$cortex_version from $source_registry to $destination_registry"
skopeo copy --src-no-creds "docker://$source_registry/$image:$cortex_version" "docker://$destination_registry/$image:$cortex_version"
echo "###############################################"
echo "add the following images to your cortex cluster configuration file (e.g. cluster.yaml):"
echo "-----------------------------------------------"
for cluster_image in "${cluster_images[@]}"; do
cluster_image_underscores=${cluster_image//-/_}
echo "image_$cluster_image_underscores: $destination_registry/$cluster_image:$cortex_version"
echo -e "-----------------------------------------------\n"
echo "use the following images in your API configuration files (e.g. cortex.yaml):"
echo "-----------------------------------------------"
for api_image in "${api_images[@]}"; do
if [ "$api_image" = "python-predictor-gpu-slim" ]; then
for extra_tag in "${extra_tags_for_slim_python_predictor[@]}"; do
echo "$destination_registry/$api_image:$cortex_version-$extra_tag"
echo "$destination_registry/$api_image:$cortex_version"
echo "-----------------------------------------------"