# 生产环境安装与部署脚本实施记录 ## 修改内容 - 新增生产环境安装脚本 `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` 下的 `backend`、`frontend`、`backup`、`logs`、`run`、`tmp` 目录,并写入 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` 安装前提,因此未在该容器直接执行安装流程,仅完成语法校验与逻辑核对