源修改
This commit is contained in:
156
build.sh
156
build.sh
@@ -335,14 +335,18 @@ save_image() {
|
||||
}
|
||||
|
||||
# ================================================
|
||||
# 主流程控制
|
||||
# 主流程控制(函数化)
|
||||
# ================================================
|
||||
|
||||
# Git更新(可选)
|
||||
if [ "${DO_BUILD}" = true ]; then
|
||||
git_update_if_needed() {
|
||||
# Git更新(可选)
|
||||
if [ "${DO_BUILD}" != true ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
log_step "Git Pull"
|
||||
cd "${PROJECT_ROOT}"
|
||||
|
||||
|
||||
if [[ $(git status --porcelain) ]]; then
|
||||
log_warn "检测到未提交的更改"
|
||||
read -p "是否继续拉取代码?(y/n): " -n 1 -r
|
||||
@@ -356,73 +360,97 @@ if [ "${DO_BUILD}" = true ]; then
|
||||
git pull origin main 2>/dev/null || git pull origin master 2>/dev/null || true
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
}
|
||||
|
||||
run_compile() {
|
||||
# 执行编译
|
||||
if [ "${DO_BUILD}" != true ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# 执行编译
|
||||
if [ "${DO_BUILD}" = true ]; then
|
||||
case ${BUILD_TARGET} in
|
||||
serv|all)
|
||||
serv)
|
||||
compile_serv
|
||||
;;
|
||||
web)
|
||||
compile_web
|
||||
;;
|
||||
all)
|
||||
compile_serv
|
||||
;& # fallthrough
|
||||
web|all)
|
||||
compile_web
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
# 执行镜像构建
|
||||
case ${BUILD_TARGET} in
|
||||
base-serv)
|
||||
build_base_serv
|
||||
;;
|
||||
mysql)
|
||||
build_mysql
|
||||
;;
|
||||
serv)
|
||||
build_serv
|
||||
;;
|
||||
web)
|
||||
build_web
|
||||
;;
|
||||
all)
|
||||
build_mysql
|
||||
build_serv
|
||||
build_web
|
||||
;;
|
||||
*)
|
||||
log_error "未知的构建目标: ${BUILD_TARGET}"
|
||||
echo ""
|
||||
echo "可用的构建目标:"
|
||||
echo " base-serv - 构建后端基础镜像(包含Python依赖)"
|
||||
echo " mysql - 构建MySQL镜像"
|
||||
echo " serv - 构建后端服务镜像"
|
||||
echo " web - 构建前端服务镜像(基于node:20-alpine)"
|
||||
echo " all - 构建所有应用镜像(默认)"
|
||||
echo ""
|
||||
echo "注意:"
|
||||
echo " - Nginx使用官方镜像 nginx:alpine,无需构建"
|
||||
echo " - Web基于官方Node镜像 node:20-alpine,无需base-web"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
run_build_images() {
|
||||
# 执行镜像构建
|
||||
case ${BUILD_TARGET} in
|
||||
base-serv)
|
||||
build_base_serv
|
||||
;;
|
||||
mysql)
|
||||
build_mysql
|
||||
;;
|
||||
serv)
|
||||
build_serv
|
||||
;;
|
||||
web)
|
||||
build_web
|
||||
;;
|
||||
all)
|
||||
build_mysql
|
||||
build_serv
|
||||
build_web
|
||||
;;
|
||||
*)
|
||||
log_error "未知的构建目标: ${BUILD_TARGET}"
|
||||
echo ""
|
||||
echo "可用的构建目标:"
|
||||
echo " base-serv - 构建后端基础镜像(包含Python依赖)"
|
||||
echo " mysql - 构建MySQL镜像"
|
||||
echo " serv - 构建后端服务镜像"
|
||||
echo " web - 构建前端服务镜像(基于node:20-alpine)"
|
||||
echo " all - 构建所有应用镜像(默认)"
|
||||
echo ""
|
||||
echo "注意:"
|
||||
echo " - Nginx使用官方镜像 nginx:alpine,无需构建"
|
||||
echo " - Web基于官方Node镜像 node:20-alpine,无需base-web"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# 查看镜像信息
|
||||
log_info "Docker镜像列表:"
|
||||
docker images | grep -E "school-news-" | head -15
|
||||
echo ""
|
||||
show_images_info() {
|
||||
# 查看镜像信息
|
||||
log_info "Docker镜像列表:"
|
||||
docker images | grep -E "school-news-" | head -15
|
||||
echo ""
|
||||
}
|
||||
|
||||
# 保存镜像
|
||||
if [ "${DO_SAVE}" = true ]; then
|
||||
save_images
|
||||
fi
|
||||
print_summary() {
|
||||
# 构建完成
|
||||
echo "=========================================="
|
||||
log_info "✅ 构建完成!"
|
||||
echo "=========================================="
|
||||
log_info "构建目标: ${BUILD_TARGET}"
|
||||
log_info "构建版本: ${IMAGE_VERSION}"
|
||||
log_info "输出目录: ${BUILD_OUTPUT}"
|
||||
echo "=========================================="
|
||||
}
|
||||
|
||||
main() {
|
||||
git_update_if_needed
|
||||
run_compile
|
||||
run_build_images
|
||||
show_images_info
|
||||
|
||||
# 保存镜像(可选)
|
||||
if [ "${DO_SAVE}" = true ]; then
|
||||
save_images
|
||||
fi
|
||||
|
||||
print_summary
|
||||
}
|
||||
|
||||
main
|
||||
|
||||
# ================================================
|
||||
# 构建完成
|
||||
# ================================================
|
||||
echo "=========================================="
|
||||
log_info "✅ 构建完成!"
|
||||
echo "=========================================="
|
||||
log_info "构建目标: ${BUILD_TARGET}"
|
||||
log_info "构建版本: ${IMAGE_VERSION}"
|
||||
log_info "输出目录: ${BUILD_OUTPUT}"
|
||||
echo "=========================================="
|
||||
|
||||
Reference in New Issue
Block a user