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}"
|