Files
CmiiDeploy/83-202604-重庆二级监管/镜像-单个推送.sh
2026-05-19 14:28:44 +08:00

63 lines
1.7 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
set -euo pipefail
# ============================================================
# 配置区:修改以下变量
# ============================================================
REGISTRY="chongqingshcis-a189ec98.ecis.chongqing-1.cmecloud.cn" # 登录地址 / 目标仓库域名
NAMESPACE="cmii" # 目标命名空间
USERNAME="cqcmii" # 仓库登录用户名
PASSWORD='pL8$kq9@m' # 仓库登录密码
# ============================================================
# 参数校验
if [ $# -ne 1 ]; then
echo "Usage: $0 <image>"
echo "Example:"
echo " $0 nginx:latest"
echo " $0 harbor.cdcyy.com.cm/cmii/asdad:v1.2"
echo " $0 harbor.cdcyy.com.cm/cmii/cmii-live/asdad:v1.2"
exit 1
fi
SRC_IMAGE="$1"
# ---------- 解析 image name 和 tag ----------
# 先分离 tag冒号后面部分
if [[ "$SRC_IMAGE" =~ ^(.*):([^:/]+)$ ]]; then
repo="${BASH_REMATCH[1]}"
tag="${BASH_REMATCH[2]}"
else
repo="$SRC_IMAGE"
tag="latest"
fi
# 只取路径最后一段作为镜像名(去掉任意层级 namespace/domain
image_name="${repo##*/}"
DEST_IMAGE="${REGISTRY}/${NAMESPACE}/${image_name}:${tag}"
# --------------------------------------------
echo ">>> Source : $SRC_IMAGE"
echo ">>> Target : $DEST_IMAGE"
echo ""
# 登录
echo ">>> Logging in to $REGISTRY..."
echo "$PASSWORD" | docker login "$REGISTRY" -u "$USERNAME" --password-stdin
# Pull
echo ">>> [pull ] $SRC_IMAGE"
docker pull "$SRC_IMAGE"
# Tag
echo ">>> [tag ] $SRC_IMAGE$DEST_IMAGE"
docker tag "$SRC_IMAGE" "$DEST_IMAGE"
# Push
echo ">>> [push ] $DEST_IMAGE"
docker push "$DEST_IMAGE"
echo ""
echo ">>> Done: $DEST_IMAGE"