Tigshop 使用教程
项目更新(linux docker 更新)
手动更新
下载代码
下载最新的代码
SQL 更新
下载下来的代码会有 sql 文件,按需进行执行
比如你的版本是 2.0.6 。
那你就需要执行 这三个,按顺序执行
2.0.6-2.0.7update.sql
2.0.7-2.0.8update.sql
2.0.9-2.1.0update.sql
前端更新
找到之前部署目录。可以先将文件进行压缩备份后再操作
- 解压下载下来最新的代码
- 替换部署目录的 public 文件
后端更新
总共有两个项目,两个项目都需要操作一遍
- adminapi
- api
-
从部署的环境中获取配置文件(替换 adminapi 项目和 api 项目的配置文件)
-
替换下载下来最新版本中的
执行打包命令 mvn clean package -DskipTests
打包生成 jar 包,替换服务器中的文件
执行完成后会生成两个文件,到对应目录中找到对应文件,替换部署文件
重启后端项目
关闭这两个项目并重新启动
脚本更新(使用命令脚本更新)
该命令需要安装 java21 和 maven 3.9 +
下载最新的代码
SQL 更新
下载下来的代码会有 sql 文件,按需进行执行
比如你的版本是 2.0.6 。
那你就需要执行 这三个,按顺序执行
2.0.6-2.0.7update.sql
2.0.7-2.0.8update.sql
2.0.9-2.1.0update.sql
上传更新的压缩包到服务器
执行脚本
sh update.sh
按提示输入对应文件目录即可
脚本如下
#!/bin/bash
set -e # 出错退出
echo "===== 项目更新脚本启动 ====="
# 1. 输入更新 zip 包
read -p "请输入更新 zip 文件路径(例如 /app/java-b2b2c-overseas-v2.1.1-20250604170820.zip): " ZIP_FILE
if [[ ! -f "$ZIP_FILE" ]]; then
echo "文件 $ZIP_FILE 不存在"
exit 1
fi
# 2. 输入部署目录
read -p "请输入部署文件夹根目录(例如 /app/java-b2b2c-overseas): " DEPLOY_DIR
if [[ ! -d "$DEPLOY_DIR" ]]; then
echo "目录 $DEPLOY_DIR 不存在"
exit 1
fi
# 获取项目名(比如 /app/java-b2b2c-overseas -> java-b2b2c-overseas)
PROJECT_NAME=$(basename "$DEPLOY_DIR")
BACKUP_FILE="${PROJECT_NAME}_backup_$(date +%Y%m%d_%H%M%S).tar.gz"
echo " 备份部署目录: $DEPLOY_DIR -> $BACKUP_FILE"
tar -c** "$BACKUP_FILE" -C "$(dirname "$DEPLOY_DIR")" "$PROJECT_NAME"
# 3. 解压 zip 文件
TEMP_DIR="./temp_update_$$"
mkdir "$TEMP_DIR"
echo " 解压更新包到临时目录 $TEMP_DIR"
unzip -q "$ZIP_FILE" -d "$TEMP_DIR"
echo " 解压完成"
# 4. 拷贝文件(如有更新代码等)
echo "拷贝配置文件到更新目录"
# 要拷贝的配置文件名(可以按需添加更多)
CONFIG_FILES=("application.yaml" "application-docker.yaml")
# 模块目录(相对 DEPLOY_DIR)
MODULE_DIRS=("tigshop-adminapi" "tigshop-api")
# 遍历每个模块目录和配置文件
for module in "${MODULE_DIRS[@]}"; do
for cfg in "${CONFIG_FILES[@]}"; do
SRC_FILE="$DEPLOY_DIR/$module/src/main/resources/$cfg"
echo "检查路径:$SRC_FILE"
if [[ -f "$SRC_FILE" ]]; then
DEST_DIR="$TEMP_DIR/$module/src/main/resources"
mkdir -p "$DEST_DIR"
cp "$SRC_FILE" "$DEST_DIR/"
echo "已拷贝 $SRC_FILE -> $DEST_DIR/"
else
echo "未找到 $SRC_FILE,跳过"
fi
done
done
# 5. Maven 打包(假设项目根目录下含有 pom.xml)
cd "$TEMP_DIR"
if [[ -f "./pom.xml" ]]; then
echo "执行 Maven 打包"
mvn clean package -DskipTests
else
echo "没有找到 pom.xml,跳过 Maven 打包"
exit 1
fi
# 6. 更新部署目录(可根据实际更新方式做增量或全量)
echo "复制打包文件到部署目录"
# 拷贝前端文件
if [[ -d "$TEMP_DIR/public" ]]; then
echo "更新前端文件"
rm -rf "$DEPLOY_DIR/public"
cp -r "$TEMP_DIR/public" "$DEPLOY_DIR/"
echo "前端文件更新完成"
else
echo "未找到前端文件目录"
fi
# 拷贝后端jar包
for module in "${MODULE_DIRS[@]}"; do
JAR_FILE="$TEMP_DIR/$module/target/$module-0.0.1-SNAPSHOT.jar"
if [[ -f "$JAR_FILE" ]]; then
echo "更新 $module JAR包"
mkdir -p "$DEPLOY_DIR/$module"
cp "$JAR_FILE" "$DEPLOY_DIR/$module/"
echo "$module JAR包更新完成"
else
echo "未找到 $module JAR包: $JAR_FILE"
fi
done
# 7. 重启 Docker(假设容器名称为项目名)
CONTAINERS=("tigshop-adminapi" "tigshop-api")
for container in "${CONTAINERS[@]}"; do
if docker ps -a --format '{{.Names}}' | grep -q "^${container}$"; then
echo "重启容器: $container"
docker restart "$container"
echo "容器 $container 已重启"
else
echo "未找到容器:$container"
fi
done
echo "更新完成!"
大纲
手动更新
下载代码
SQL 更新
前端更新
后端更新
重启后端项目
脚本更新(使用命令脚本更新)
SQL 更新
上传更新的压缩包到服务器
执行脚本
脚本如下