erp-java/services/sku-match-service/deploy.sh

59 lines
1.8 KiB
Bash

#!/bin/bash
set -e
SERVICE_NAME="sku-match-service"
SERVICE_DIR="/root/.openclaw/workspace/erp-java-backend/services/sku-match-service"
IMAGE_NAME="erp/${SERVICE_NAME}:latest"
CONTAINER_NAME="${SERVICE_NAME}"
echo "========== ${SERVICE_NAME} 部署开始 =========="
cd ${SERVICE_DIR}
# 1. 初始化数据库
echo "[1/4] 初始化数据库..."
mysql -h 111.229.80.149 -u root -pnihao588+ erp_db < sql/init.sql 2>/dev/null || echo "数据库已存在,跳过初始化"
# 2. 构建镜像
echo "[2/4] 构建Docker镜像..."
docker build -t ${IMAGE_NAME} .
# 3. 停止并删除旧容器
echo "[3/4] 停止旧容器..."
docker stop ${CONTAINER_NAME} 2>/dev/null || true
docker rm ${CONTAINER_NAME} 2>/dev/null || true
# 4. 启动新容器
echo "[4/4] 启动新容器..."
docker run -d \
--name ${CONTAINER_NAME} \
--restart always \
-p 8084:8084 \
-e SPRING_PROFILES_ACTIVE=prod \
-e SPRING_DATASOURCE_URL="jdbc:mysql://111.229.80.149:3306/erp_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=nihao588+ \
-e SPRING_DATA_REDIS_HOST=111.229.80.149 \
-e SPRING_DATA_REDIS_PORT=6379 \
-e SPRING_DATA_REDIS_PASSWORD="Y(@r5tGk9\$Lp2" \
-e SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR=111.229.80.149:8848 \
-e SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=111.229.80.149:8848 \
${IMAGE_NAME}
echo "等待服务启动..."
sleep 10
# 健康检查
for i in {1..10}; do
if curl -sf http://localhost:8084/actuator/health > /dev/null 2>&1; then
echo "${SERVICE_NAME} 部署成功!"
exit 0
fi
echo "等待服务就绪... ($i/10)"
sleep 3
done
echo "${SERVICE_NAME} 部署失败,请检查日志"
docker logs ${CONTAINER_NAME}
exit 1