feat: 支持仅推送前端或后端镜像
This commit is contained in:
parent
1c878f961e
commit
ad00d49eeb
@ -76,6 +76,8 @@ show_help() {
|
||||
-t, --tag TAG 镜像标签 [默认: latest,会自动使用环境标签]
|
||||
--skip-images 跳过镜像推送,仅推送配置文件
|
||||
--skip-files 跳过配置文件推送,仅推送镜像
|
||||
--frontend-only 仅推送前端镜像
|
||||
--backend-only 仅推送后端镜像
|
||||
--help 显示此帮助信息
|
||||
|
||||
示例:
|
||||
@ -85,6 +87,8 @@ show_help() {
|
||||
$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 --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() {
|
||||
SKIP_IMAGES=false
|
||||
SKIP_FILES=false
|
||||
FRONTEND_ONLY=false
|
||||
BACKEND_ONLY=false
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
@ -147,6 +153,14 @@ parse_args() {
|
||||
SKIP_FILES=true
|
||||
shift
|
||||
;;
|
||||
--frontend-only)
|
||||
FRONTEND_ONLY=true
|
||||
shift
|
||||
;;
|
||||
--backend-only)
|
||||
BACKEND_ONLY=true
|
||||
shift
|
||||
;;
|
||||
--help)
|
||||
show_help
|
||||
exit 0
|
||||
@ -173,6 +187,17 @@ parse_args() {
|
||||
show_help
|
||||
exit 1
|
||||
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"
|
||||
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
|
||||
log_info "处理镜像: $image"
|
||||
@ -462,7 +498,7 @@ push_docker_images() {
|
||||
log_success "镜像推送完成: $image"
|
||||
done
|
||||
|
||||
log_success "所有Docker镜像推送完成"
|
||||
log_success "Docker镜像推送完成"
|
||||
}
|
||||
|
||||
# ===========================================
|
||||
@ -504,7 +540,16 @@ verify_push() {
|
||||
image_tag="$env_tag"
|
||||
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
|
||||
if ssh_execute "docker images --format '{{.Repository}}:{{.Tag}}' | grep -q '^$image$'" false; then
|
||||
log_success "✓ $image"
|
||||
@ -527,6 +572,20 @@ show_deploy_info() {
|
||||
echo "部署路径: $REMOTE_PATH"
|
||||
echo "环境: $ENVIRONMENT"
|
||||
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 "1. 登录远程服务器:"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user