74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | |
| 
 | |
| set -e
 | |
| 
 | |
| DRY_RUN=false
 | |
| if [ "$1" == "--dry-run" ]; then
 | |
|     DRY_RUN=true
 | |
|     echo "Running in dry-run mode. No images will be pulled, tagged, or pushed."
 | |
| fi
 | |
| 
 | |
| TARGET_REGISTRY="opencoze-cn-beijing.cr.volces.com/iac"
 | |
| 
 | |
| images=(
 | |
|     "mysql:8.4.5"
 | |
|     "bitnami/redis:8.0"
 | |
|     "opencoze/opencoze:latest"
 | |
|     "apache/rocketmq:5.3.2"
 | |
|     "bitnami/elasticsearch:8.18.0"
 | |
|     "minio/minio:RELEASE.2025-06-13T11-33-47Z-cpuv1"
 | |
|     "minio/mc:RELEASE.2025-05-21T01-59-54Z-cpuv1"
 | |
|     "arigaio/atlas:0.35.0-community-alpine"
 | |
|     "bitnami/etcd:3.5"
 | |
|     "alpine/curl:8.12.1"
 | |
|     "milvusdb/milvus:v2.5.10"
 | |
|     "busybox:latest"
 | |
| )
 | |
| 
 | |
| # Function to tag and push an image
 | |
| tag_and_push() {
 | |
|     source_image=$1
 | |
|     # Extract image name and tag (e.g., "etcd:3.5" from "bitnami/etcd:3.5")
 | |
|     image_name_tag=$(basename "$source_image")
 | |
|     target_image="$TARGET_REGISTRY/$image_name_tag"
 | |
| 
 | |
|     echo "Tagging $source_image as $target_image"
 | |
|     if [ "$DRY_RUN" = false ]; then
 | |
|         docker tag "$source_image" "$target_image"
 | |
|     else
 | |
|         echo "[dry-run] docker tag \"$source_image\" \"$target_image\""
 | |
|     fi
 | |
| 
 | |
|     echo "Pushing $target_image"
 | |
|     if [ "$DRY_RUN" = false ]; then
 | |
|         docker push "$target_image"
 | |
|     else
 | |
|         echo "[dry-run] docker push \"$target_image\""
 | |
|     fi
 | |
|     echo ""
 | |
| }
 | |
| 
 | |
| # Pull all images first
 | |
| for image in "${images[@]}"; do
 | |
|     if docker image inspect "${image}" >/dev/null 2>&1; then
 | |
|         echo "Image ${image} already exists locally, skipping pull."
 | |
|     else
 | |
|         echo "Pulling ${image}"
 | |
|         if [ "${DRY_RUN}" = false ]; then
 | |
|             docker pull "${image}"
 | |
|         else
 | |
|             echo "[dry-run] docker pull \"${image}\""
 | |
|         fi
 | |
|     fi
 | |
| done
 | |
| 
 | |
| echo "All images pulled successfully."
 | |
| echo ""
 | |
| 
 | |
| # Tag and push all images
 | |
| for image in "${images[@]}"; do
 | |
|     tag_and_push "$image"
 | |
| done
 | |
| 
 | |
| echo "All images have been tagged and pushed to $TARGET_REGISTRY."
 |