106 lines
2.6 KiB
Bash
106 lines
2.6 KiB
Bash
#!/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 |