erp-java/services/tenant-service/deploy.sh

78 lines
1.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Tenant Service 部署脚本
# 用法: ./deploy.sh [环境] [版本]
# 示例: ./deploy.sh prod 1.0.0
set -e
# 配置
SERVICE_NAME="tenant-service"
SERVICE_PORT=8084
DOCKER_REGISTRY="registry.example.com"
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查参数
if [ -z "$1" ]; then
PROFILE="dev"
else
PROFILE="$1"
fi
if [ -z "$2" ]; then
VERSION=$(date +%Y%m%d%H%M)
else
VERSION="$2"
fi
log_info "开始部署 ${SERVICE_NAME}..."
log_info "环境: ${PROFILE}"
log_info "版本: ${VERSION}"
# 构建
log_info "开始构建..."
cd "${PROJECT_DIR}"
mvn clean package -DskipTests -P${PROFILE}
# Docker 构建
log_info "开始 Docker 构建..."
docker build -t ${DOCKER_REGISTRY}/${SERVICE_NAME}:${VERSION} .
docker tag ${DOCKER_REGISTRY}/${SERVICE_NAME}:${VERSION} ${DOCKER_REGISTRY}/${SERVICE_NAME}:latest
# 推送镜像
log_info "推送镜像到仓库..."
docker push ${DOCKER_REGISTRY}/${SERVICE_NAME}:${VERSION}
docker push ${DOCKER_REGISTRY}/${SERVICE_NAME}:latest
# 部署(使用 kubectl
log_info "更新 Kubernetes 部署..."
kubectl set image deployment/${SERVICE_NAME} ${SERVICE_NAME}=${DOCKER_REGISTRY}/${SERVICE_NAME}:${VERSION}
kubectl rollout status deployment/${SERVICE_NAME}
# 或者使用 docker-compose 部署
# log_info "使用 docker-compose 重启服务..."
# docker-compose down
# docker-compose up -d
log_info "部署完成!"
log_info "服务地址: http://localhost:${SERVICE_PORT}"
log_info "健康检查: http://localhost:${SERVICE_PORT}/actuator/health"