config_center/build.sh
2025-03-04 12:40:13 +08:00

106 lines
2.6 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.

#!/bin/bash
# 从version.py获取版本号
VERSION=$(python3 -c "from app.core.version import get_version; print(get_version())")
if [ $? -ne 0 ]; then
echo "错误: 无法获取版本号"
exit 1
fi
IMAGE_NAME="config-center"
REGISTRY=""
LATEST=false
# 显示帮助信息
show_help() {
echo "Usage: $0 [options]"
echo "Options:"
echo " -h, --help 显示帮助信息"
echo " -n, --name 设置镜像名称 (默认: config-center)"
echo " -r, --registry 设置镜像仓库地址"
echo " -v, --version 设置版本号 (默认: 1.0.0)"
echo " -l, --latest 同时构建latest标签"
}
# 解析命令行参数
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-h|--help)
show_help
exit 0
;;
-n|--name)
IMAGE_NAME="$2"
shift
shift
;;
-r|--registry)
REGISTRY="$2"
shift
shift
;;
-v|--version)
VERSION="$2"
shift
shift
;;
-l|--latest)
LATEST=true
shift
;;
*)
echo "未知参数: $1"
show_help
exit 1
;;
esac
done
# 构建完整的镜像名称
if [ -n "$REGISTRY" ]; then
FULL_IMAGE_NAME="$REGISTRY/$IMAGE_NAME"
else
FULL_IMAGE_NAME="$IMAGE_NAME"
fi
# 构建Docker镜像
echo "开始构建Docker镜像: $FULL_IMAGE_NAME:$VERSION"
if ! docker build -t "$FULL_IMAGE_NAME:$VERSION" .; then
echo "错误: Docker镜像构建失败"
exit 1
fi
# 如果指定了latest标签则也构建latest版本
if [ "$LATEST" = true ]; then
echo "标记latest版本"
if ! docker tag "$FULL_IMAGE_NAME:$VERSION" "$FULL_IMAGE_NAME:latest"; then
echo "错误: 标记latest版本失败"
exit 1
fi
# 如果设置了镜像仓库推送latest版本
if [ -n "$REGISTRY" ]; then
echo "推送latest版本到镜像仓库"
if ! docker push "$FULL_IMAGE_NAME:latest"; then
echo "错误: 推送latest版本失败"
exit 1
fi
fi
fi
# 如果设置了镜像仓库,推送版本化的镜像
if [ -n "$REGISTRY" ]; then
echo "推送版本化镜像到镜像仓库"
if ! docker push "$FULL_IMAGE_NAME:$VERSION"; then
echo "错误: 推送版本化镜像失败"
exit 1
fi
fi
echo "构建完成!"
echo "镜像信息:"
echo " 名称: $FULL_IMAGE_NAME"
echo " 版本: $VERSION"
if [ "$LATEST" = true ]; then
echo " latest标签: 是"
fi