#!/bin/bash # 腾讯云 TCR 配置 TCR_SERVER="ccr.ccs.tencentyun.com" TCR_NAMESPACE="sqai" TCR_REPO="sqaii" TCR_USERNAME="xiaoyan99817" TCR_PASSWORD="xiaoyan99817" # 要上传的镜像 SOURCE_IMAGE="lishunqin/taibai-shopping:latest" # 提取镜像信息 IMAGE_NAME="taibai-shopping" TAG="latest" echo "🚀 开始上传 $SOURCE_IMAGE 到腾讯云 TCR..." # 登录腾讯云 TCR echo "🔐 登录到腾讯云 TCR..." docker login $TCR_SERVER -u "$TCR_USERNAME" -p "$TCR_PASSWORD" if [ $? -ne 0 ]; then echo "❌ TCR 登录失败!" exit 1 fi # 检查本地是否有镜像,没有则拉取 echo "🔹 检查本地镜像..." if ! docker image inspect $SOURCE_IMAGE >/dev/null 2>&1; then echo "🔹 本地没有镜像,正在拉取: $SOURCE_IMAGE" docker pull $SOURCE_IMAGE if [ $? -ne 0 ]; then echo "❌ 镜像拉取失败!" exit 1 fi else echo "✅ 本地已存在镜像: $SOURCE_IMAGE" fi # 构建TCR镜像标签 TCR_IMAGE="$TCR_SERVER/$TCR_NAMESPACE/$TCR_REPO:$IMAGE_NAME-$TAG" echo "🔹 重新标记镜像: $TCR_IMAGE" docker tag $SOURCE_IMAGE $TCR_IMAGE if [ $? -ne 0 ]; then echo "❌ 镜像标记失败!" exit 1 fi echo "🚀 正在推送镜像到腾讯云 TCR: $TCR_IMAGE" docker push $TCR_IMAGE if [ $? -ne 0 ]; then echo "❌ 镜像推送失败!" exit 1 fi echo "✅ 镜像上传完成: $TCR_IMAGE" echo "🎉 上传成功!您可以在 docker-compose.yml 中使用以下镜像地址:" echo " image: $TCR_IMAGE" # 清理本地标记的镜像(可选) read -p "是否删除本地标记的TCR镜像? (y/N): " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then docker rmi $TCR_IMAGE echo "🗑️ 已清理本地TCR标记镜像" fi