feat: 支持仅推送前端或后端镜像
This commit is contained in:
parent
1c878f961e
commit
ad00d49eeb
@ -76,6 +76,8 @@ show_help() {
|
|||||||
-t, --tag TAG 镜像标签 [默认: latest,会自动使用环境标签]
|
-t, --tag TAG 镜像标签 [默认: latest,会自动使用环境标签]
|
||||||
--skip-images 跳过镜像推送,仅推送配置文件
|
--skip-images 跳过镜像推送,仅推送配置文件
|
||||||
--skip-files 跳过配置文件推送,仅推送镜像
|
--skip-files 跳过配置文件推送,仅推送镜像
|
||||||
|
--frontend-only 仅推送前端镜像
|
||||||
|
--backend-only 仅推送后端镜像
|
||||||
--help 显示此帮助信息
|
--help 显示此帮助信息
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
@ -85,6 +87,8 @@ show_help() {
|
|||||||
$0 -h 192.168.1.100 -d /home/deploy/anxin # 指定目标路径
|
$0 -h 192.168.1.100 -d /home/deploy/anxin # 指定目标路径
|
||||||
$0 -h 192.168.1.100 -t v1.0.0 # 指定镜像标签
|
$0 -h 192.168.1.100 -t v1.0.0 # 指定镜像标签
|
||||||
$0 -h 192.168.1.100 --skip-images # 仅推送配置文件
|
$0 -h 192.168.1.100 --skip-images # 仅推送配置文件
|
||||||
|
$0 -h 192.168.1.100 --frontend-only # 仅推送前端镜像
|
||||||
|
$0 -h 192.168.1.100 --backend-only # 仅推送后端镜像
|
||||||
|
|
||||||
推送内容:
|
推送内容:
|
||||||
配置文件:
|
配置文件:
|
||||||
@ -112,6 +116,8 @@ EOF
|
|||||||
parse_args() {
|
parse_args() {
|
||||||
SKIP_IMAGES=false
|
SKIP_IMAGES=false
|
||||||
SKIP_FILES=false
|
SKIP_FILES=false
|
||||||
|
FRONTEND_ONLY=false
|
||||||
|
BACKEND_ONLY=false
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]; do
|
while [[ $# -gt 0 ]]; do
|
||||||
case $1 in
|
case $1 in
|
||||||
@ -147,6 +153,14 @@ parse_args() {
|
|||||||
SKIP_FILES=true
|
SKIP_FILES=true
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--frontend-only)
|
||||||
|
FRONTEND_ONLY=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--backend-only)
|
||||||
|
BACKEND_ONLY=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
--help)
|
--help)
|
||||||
show_help
|
show_help
|
||||||
exit 0
|
exit 0
|
||||||
@ -173,6 +187,17 @@ parse_args() {
|
|||||||
show_help
|
show_help
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 验证互斥参数
|
||||||
|
if [[ "$FRONTEND_ONLY" == "true" && "$BACKEND_ONLY" == "true" ]]; then
|
||||||
|
log_error "--frontend-only 和 --backend-only 不能同时使用"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$SKIP_IMAGES" == "true" && ("$FRONTEND_ONLY" == "true" || "$BACKEND_ONLY" == "true") ]]; then
|
||||||
|
log_error "--skip-images 不能与 --frontend-only 或 --backend-only 同时使用"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# ===========================================
|
# ===========================================
|
||||||
@ -430,7 +455,18 @@ push_docker_images() {
|
|||||||
image_tag="$env_tag"
|
image_tag="$env_tag"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local images=("${FRONTEND_IMAGE}:${image_tag}" "${BACKEND_IMAGE}:${image_tag}")
|
# 根据参数确定要推送的镜像
|
||||||
|
local images=()
|
||||||
|
if [[ "$FRONTEND_ONLY" == "true" ]]; then
|
||||||
|
images=("${FRONTEND_IMAGE}:${image_tag}")
|
||||||
|
log_info "仅推送前端镜像"
|
||||||
|
elif [[ "$BACKEND_ONLY" == "true" ]]; then
|
||||||
|
images=("${BACKEND_IMAGE}:${image_tag}")
|
||||||
|
log_info "仅推送后端镜像"
|
||||||
|
else
|
||||||
|
images=("${FRONTEND_IMAGE}:${image_tag}" "${BACKEND_IMAGE}:${image_tag}")
|
||||||
|
log_info "推送前端和后端镜像"
|
||||||
|
fi
|
||||||
|
|
||||||
for image in "${images[@]}"; do
|
for image in "${images[@]}"; do
|
||||||
log_info "处理镜像: $image"
|
log_info "处理镜像: $image"
|
||||||
@ -462,7 +498,7 @@ push_docker_images() {
|
|||||||
log_success "镜像推送完成: $image"
|
log_success "镜像推送完成: $image"
|
||||||
done
|
done
|
||||||
|
|
||||||
log_success "所有Docker镜像推送完成"
|
log_success "Docker镜像推送完成"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ===========================================
|
# ===========================================
|
||||||
@ -504,7 +540,16 @@ verify_push() {
|
|||||||
image_tag="$env_tag"
|
image_tag="$env_tag"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local images=("${FRONTEND_IMAGE}:${image_tag}" "${BACKEND_IMAGE}:${image_tag}")
|
# 根据参数确定要验证的镜像
|
||||||
|
local images=()
|
||||||
|
if [[ "$FRONTEND_ONLY" == "true" ]]; then
|
||||||
|
images=("${FRONTEND_IMAGE}:${image_tag}")
|
||||||
|
elif [[ "$BACKEND_ONLY" == "true" ]]; then
|
||||||
|
images=("${BACKEND_IMAGE}:${image_tag}")
|
||||||
|
else
|
||||||
|
images=("${FRONTEND_IMAGE}:${image_tag}" "${BACKEND_IMAGE}:${image_tag}")
|
||||||
|
fi
|
||||||
|
|
||||||
for image in "${images[@]}"; do
|
for image in "${images[@]}"; do
|
||||||
if ssh_execute "docker images --format '{{.Repository}}:{{.Tag}}' | grep -q '^$image$'" false; then
|
if ssh_execute "docker images --format '{{.Repository}}:{{.Tag}}' | grep -q '^$image$'" false; then
|
||||||
log_success "✓ $image"
|
log_success "✓ $image"
|
||||||
@ -527,6 +572,20 @@ show_deploy_info() {
|
|||||||
echo "部署路径: $REMOTE_PATH"
|
echo "部署路径: $REMOTE_PATH"
|
||||||
echo "环境: $ENVIRONMENT"
|
echo "环境: $ENVIRONMENT"
|
||||||
echo "镜像标签: $TAG"
|
echo "镜像标签: $TAG"
|
||||||
|
|
||||||
|
# 显示推送的镜像类型
|
||||||
|
if [[ "$SKIP_IMAGES" != "true" ]]; then
|
||||||
|
if [[ "$FRONTEND_ONLY" == "true" ]]; then
|
||||||
|
echo "推送镜像: 仅前端镜像"
|
||||||
|
elif [[ "$BACKEND_ONLY" == "true" ]]; then
|
||||||
|
echo "推送镜像: 仅后端镜像"
|
||||||
|
else
|
||||||
|
echo "推送镜像: 前端和后端镜像"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "推送镜像: 跳过"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "----------------------------------------"
|
echo "----------------------------------------"
|
||||||
echo "下一步操作:"
|
echo "下一步操作:"
|
||||||
echo "1. 登录远程服务器:"
|
echo "1. 登录远程服务器:"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user