Refactor project structure and update Maven configuration for CRM service
This commit is contained in:
parent
9e57bffca4
commit
f1803e4646
@ -1,5 +1,5 @@
|
|||||||
# 多阶段构建 - 构建阶段
|
# 多阶段构建 - 构建阶段
|
||||||
FROM maven:3.8.6-openjdk-17-slim AS builder
|
FROM registry.cn-hangzhou.aliyuncs.com/library/maven:3.8.6-openjdk-17-slim AS builder
|
||||||
|
|
||||||
# 设置工作目录
|
# 设置工作目录
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@ -13,7 +13,7 @@ COPY src ./src
|
|||||||
RUN mvn clean package -DskipTests
|
RUN mvn clean package -DskipTests
|
||||||
|
|
||||||
# 运行阶段
|
# 运行阶段
|
||||||
FROM openjdk:17-jre-alpine
|
FROM registry.cn-hangzhou.aliyuncs.com/library/openjdk:17-jre-alpine
|
||||||
|
|
||||||
# 设置时区和安装必要工具
|
# 设置时区和安装必要工具
|
||||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
||||||
|
25
crm-mcp/Dockerfile_backup
Normal file
25
crm-mcp/Dockerfile_backup
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# 备用 Dockerfile - 使用 Eclipse Temurin JDK
|
||||||
|
FROM eclipse-temurin:17-jre-alpine
|
||||||
|
|
||||||
|
# 设置时区和安装必要工具
|
||||||
|
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
||||||
|
echo 'Asia/Shanghai' >/etc/timezone && \
|
||||||
|
apk add --no-cache curl
|
||||||
|
|
||||||
|
# 复制 jar 包
|
||||||
|
COPY ./target/crm-mcp-*.jar /app/crm-mcp.jar
|
||||||
|
|
||||||
|
# 设置工作目录
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# 暴露端口
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
# 设置 JVM 参数和启动命令
|
||||||
|
CMD ["java", \
|
||||||
|
"-Xms512m", \
|
||||||
|
"-Xmx1024m", \
|
||||||
|
"-Dspring.profiles.active=dev", \
|
||||||
|
"-Dspring.ai.mcp.server.stdio=false", \
|
||||||
|
"-jar", \
|
||||||
|
"crm-mcp.jar"]
|
@ -1,4 +1,5 @@
|
|||||||
FROM openjdk:17-jre-alpine
|
# 使用阿里云镜像源的 OpenJDK
|
||||||
|
FROM registry.cn-hangzhou.aliyuncs.com/library/openjdk:17-jre-alpine
|
||||||
|
|
||||||
# 设置时区和安装必要工具
|
# 设置时区和安装必要工具
|
||||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
||||||
|
166
crm-mcp/build.sh
Executable file
166
crm-mcp/build.sh
Executable file
@ -0,0 +1,166 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# CRM MCP 服务构建和部署脚本
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# 颜色定义
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
# 打印带颜色的消息
|
||||||
|
print_message() {
|
||||||
|
echo -e "${GREEN}[INFO]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_warning() {
|
||||||
|
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_error() {
|
||||||
|
echo -e "${RED}[ERROR]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 检查 Docker 是否安装
|
||||||
|
check_docker() {
|
||||||
|
if ! command -v docker &> /dev/null; then
|
||||||
|
print_error "Docker 未安装,请先安装 Docker"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
print_message "Docker 检查通过"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 检查 Maven 是否安装
|
||||||
|
check_maven() {
|
||||||
|
if ! command -v mvn &> /dev/null; then
|
||||||
|
print_warning "Maven 未安装,将使用 Docker 多阶段构建"
|
||||||
|
USE_DOCKER_BUILD=true
|
||||||
|
else
|
||||||
|
print_message "Maven 检查通过"
|
||||||
|
USE_DOCKER_BUILD=false
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# 本地 Maven 构建
|
||||||
|
maven_build() {
|
||||||
|
print_message "开始 Maven 构建..."
|
||||||
|
mvn clean package -DskipTests
|
||||||
|
print_message "Maven 构建完成"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Docker 构建
|
||||||
|
docker_build() {
|
||||||
|
print_message "开始 Docker 构建..."
|
||||||
|
|
||||||
|
if [ "$USE_DOCKER_BUILD" = true ]; then
|
||||||
|
# 使用多阶段构建
|
||||||
|
docker build -t crm-mcp:latest .
|
||||||
|
else
|
||||||
|
# 使用测试 Dockerfile(需要先有 jar 包)
|
||||||
|
docker build -f Dockerfile_test -t crm-mcp:latest .
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_message "Docker 构建完成"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 启动服务
|
||||||
|
start_service() {
|
||||||
|
print_message "启动 CRM MCP 服务..."
|
||||||
|
docker-compose up -d
|
||||||
|
print_message "服务启动完成"
|
||||||
|
|
||||||
|
# 等待服务启动
|
||||||
|
print_message "等待服务启动..."
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# 检查服务状态
|
||||||
|
if docker-compose ps | grep -q "Up"; then
|
||||||
|
print_message "服务启动成功!"
|
||||||
|
print_message "访问地址: http://localhost:8080"
|
||||||
|
print_message "健康检查: http://localhost:8080/actuator/health"
|
||||||
|
else
|
||||||
|
print_error "服务启动失败,请检查日志"
|
||||||
|
docker-compose logs
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# 停止服务
|
||||||
|
stop_service() {
|
||||||
|
print_message "停止 CRM MCP 服务..."
|
||||||
|
docker-compose down
|
||||||
|
print_message "服务已停止"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 查看日志
|
||||||
|
show_logs() {
|
||||||
|
docker-compose logs -f crm-mcp
|
||||||
|
}
|
||||||
|
|
||||||
|
# 清理
|
||||||
|
clean() {
|
||||||
|
print_message "清理 Docker 镜像和容器..."
|
||||||
|
docker-compose down --rmi all --volumes --remove-orphans
|
||||||
|
print_message "清理完成"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 主函数
|
||||||
|
main() {
|
||||||
|
case "$1" in
|
||||||
|
"build")
|
||||||
|
check_docker
|
||||||
|
check_maven
|
||||||
|
if [ "$USE_DOCKER_BUILD" = false ]; then
|
||||||
|
maven_build
|
||||||
|
fi
|
||||||
|
docker_build
|
||||||
|
;;
|
||||||
|
"start")
|
||||||
|
check_docker
|
||||||
|
start_service
|
||||||
|
;;
|
||||||
|
"stop")
|
||||||
|
check_docker
|
||||||
|
stop_service
|
||||||
|
;;
|
||||||
|
"restart")
|
||||||
|
check_docker
|
||||||
|
stop_service
|
||||||
|
start_service
|
||||||
|
;;
|
||||||
|
"logs")
|
||||||
|
check_docker
|
||||||
|
show_logs
|
||||||
|
;;
|
||||||
|
"clean")
|
||||||
|
check_docker
|
||||||
|
clean
|
||||||
|
;;
|
||||||
|
"all")
|
||||||
|
check_docker
|
||||||
|
check_maven
|
||||||
|
if [ "$USE_DOCKER_BUILD" = false ]; then
|
||||||
|
maven_build
|
||||||
|
fi
|
||||||
|
docker_build
|
||||||
|
start_service
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "使用方法: $0 {build|start|stop|restart|logs|clean|all}"
|
||||||
|
echo ""
|
||||||
|
echo "命令说明:"
|
||||||
|
echo " build - 构建 Docker 镜像"
|
||||||
|
echo " start - 启动服务"
|
||||||
|
echo " stop - 停止服务"
|
||||||
|
echo " restart - 重启服务"
|
||||||
|
echo " logs - 查看日志"
|
||||||
|
echo " clean - 清理所有资源"
|
||||||
|
echo " all - 构建并启动服务"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# 执行主函数
|
||||||
|
main "$@"
|
53
crm-mcp/docker-compose.yml
Normal file
53
crm-mcp/docker-compose.yml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
crm-mcp:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
image: crm-mcp:latest
|
||||||
|
container_name: crm-mcp-server
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
environment:
|
||||||
|
- SPRING_PROFILES_ACTIVE=prod
|
||||||
|
- JAVA_OPTS=-Xms512m -Xmx1024m
|
||||||
|
- CRM_URL=https://www.rzdata.net/bcrm-statis-jwt/
|
||||||
|
- CRM_TENANT_ID=BIO
|
||||||
|
- CRM_TOKEN=Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJJUXdrczhuUWc4NnJPQkpuenJDUThtbjl1N3FEQ2lWZyJ9.91GO7OMhVbc0tLBRZ7HYiFDEA92PXE7H1gHduwxWu2I
|
||||||
|
volumes:
|
||||||
|
- ./logs:/app/logs
|
||||||
|
- ./config:/app/config
|
||||||
|
networks:
|
||||||
|
- crm-network
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 60s
|
||||||
|
|
||||||
|
# 可选:添加 Nginx 反向代理
|
||||||
|
nginx:
|
||||||
|
image: nginx:alpine
|
||||||
|
container_name: crm-mcp-nginx
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||||
|
- ./nginx/ssl:/etc/nginx/ssl:ro
|
||||||
|
depends_on:
|
||||||
|
- crm-mcp
|
||||||
|
networks:
|
||||||
|
- crm-network
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
networks:
|
||||||
|
crm-network:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
crm-logs:
|
||||||
|
driver: local
|
Loading…
x
Reference in New Issue
Block a user