Files
loan-pricing/doc/implementation-report-2026-03-31-production-deploy-scripts.md

3.1 KiB
Raw Blame History

生产环境安装与部署脚本实施记录

修改内容

  • 新增生产环境安装脚本 bin/prod/install_env.sh
  • 新增生产环境部署脚本 bin/prod/deploy_release.sh
  • 新增生产环境 Java 管理脚本 bin/prod/restart_java.sh
  • 两份脚本需要同步放置到生产容器 /home/webapp 目录,便于在目标环境直接执行
  • 部署脚本改为复用独立的 Java 管理脚本完成后端启停
  • 安装脚本固定将 Java 安装到 /home/webapp/env/java,将 Nginx 安装到 /home/webapp/env/nginx
  • 安装脚本会创建 /home/webapp/loan-pricing 下的 backendfrontendbackuplogsruntmp 目录,并写入 Nginx 配置
  • 部署脚本约定发布包内必须包含 1 个后端 jar 和 1 个 dist.zip
  • 部署脚本在发布前会备份旧版后端 jar 与旧版前端 dist 目录,再完成替换、启动后端和重载 Nginx
  • Nginx 前端监听端口固定为 63311,后端应用启动端口固定为 63310

环境勘察结论

  • 已连接生产服务器 116.62.17.81:9444 并进入 loan-pricing 容器核对目录结构
  • 容器内实际工作目录为 /home/webapp
  • 已确认当前容器中存在安装包:
    • /home/webapp/openjdk-21.0.2_linux-aarch64_bin.tar.gz
    • /home/webapp/nginx-1.20.2.tar.gz
  • 已确认当前容器尚不存在 /home/webapp/loan-pricing
  • 已确认当前容器当前没有运行中的 Java 或 Nginx 进程
  • 当前被勘察容器基础镜像为 Ubuntu但脚本已按需求改为基于 yum 安装系统依赖,适配正式生产环境约束
  • 已确认当前容器无法直接安装原生 yum 包,但系统仓库提供 dnf 包,可通过 dnf 提供 yum 兼容执行入口

验证结果

  • 已执行 sh -n bin/prod/install_env.sh
  • 已执行 sh -n bin/prod/deploy_release.sh
  • 已将两份脚本同步到生产 loan-pricing 容器:
    • /home/webapp/install_env.sh
    • /home/webapp/deploy_release.sh
  • 已将 Java 管理脚本同步到生产 loan-pricing 容器:
    • /home/webapp/restart_java.sh
  • 已在容器内执行 ls -l /home/webapp/install_env.sh /home/webapp/deploy_release.sh /home/webapp/restart_java.sh,确认三份脚本均已落盘且具备可执行权限
  • 已在容器内执行:
    • sh -n /home/webapp/install_env.sh
    • sh -n /home/webapp/deploy_release.sh
    • sh -n /home/webapp/restart_java.sh 三份线上脚本语法校验均已通过
  • 已确认 Ubuntu 24.04 仓库中 yum 包候选为空,dnf 包候选为 4.14.0-4.1ubuntu1
  • 已在生产 loan-pricing 容器执行 apt-get install -y dnf dnf-plugins-core
  • 已在生产 loan-pricing 容器创建 yum 兼容入口:
    • /usr/local/bin/yum -> /usr/bin/dnf
  • 已执行 yum --version,返回 4.14.0
  • 已人工核对脚本中的关键路径、端口与部署约束:
    • Java 安装目录 /home/webapp/env/java
    • Nginx 安装目录 /home/webapp/env/nginx
    • 项目部署目录 /home/webapp/loan-pricing
    • 前端端口 63311
    • 后端端口 63310
  • 由于当前已连接勘察容器为 Ubuntu 24.04,不具备本次脚本要求的 yum 安装前提,因此未在该容器直接执行安装流程,仅完成语法校验与逻辑核对