56 lines
1.4 KiB
Bash
56 lines
1.4 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
:: 设置变量
|
|||
|
|
IMAGE_NAME="yudao-server"
|
|||
|
|
REGISTRY="crpi-y5od2i6cxawm9v5y.cn-hangzhou.personal.cr.aliyuncs.com"
|
|||
|
|
NAMESPACE="masterke"
|
|||
|
|
USERNAME="masterke2003"
|
|||
|
|
PASSWORD="Q2yXYthl9X7Ugm"
|
|||
|
|
|
|||
|
|
# 获取时间戳作为版本号
|
|||
|
|
version=$(date +%Y%m%d%H%M%S)
|
|||
|
|
|
|||
|
|
# 完整镜像名
|
|||
|
|
FULL_IMAGE_NAME="${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${version}"
|
|||
|
|
LATEST_IMAGE="${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:latest"
|
|||
|
|
|
|||
|
|
echo "检查 JAR 文件:"
|
|||
|
|
|
|||
|
|
|
|||
|
|
if [ -f "./yudao-server/target/${IMAGE_NAME}.jar" ]; then
|
|||
|
|
echo " JAR 文件存在: $(realpath ./yudao-server/target/${IMAGE_NAME}.jar)"
|
|||
|
|
else
|
|||
|
|
echo " 错误:JAR 文件不存在"
|
|||
|
|
echo " 目录内容:"
|
|||
|
|
ls -la ./yudao-server/target 2>/dev/null || echo " 无法列出目录内容"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "正在登录到阿里云容器镜像仓库..."
|
|||
|
|
echo "$PASSWORD" | docker login --username="$USERNAME" --password-stdin "$REGISTRY"
|
|||
|
|
if [ $? -ne 0 ]; then
|
|||
|
|
echo "登录失败,请检查用户名或密码"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "正在构建镜像..."
|
|||
|
|
docker build -t "$FULL_IMAGE_NAME" .
|
|||
|
|
if [ $? -ne 0 ]; then
|
|||
|
|
echo "构建失败"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 标记镜像为最新版本
|
|||
|
|
docker tag "$FULL_IMAGE_NAME" "$LATEST_IMAGE"
|
|||
|
|
|
|||
|
|
echo "正在推送镜像到远程仓库..."
|
|||
|
|
docker push "$LATEST_IMAGE"
|
|||
|
|
docker push "$FULL_IMAGE_NAME"
|
|||
|
|
if [ $? -ne 0 ]; then
|
|||
|
|
echo "推送失败"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "镜像推送成功: ${FULL_IMAGE_NAME}"
|
|||
|
|
echo "最新版本: ${LATEST_IMAGE}"
|