# 注:Compose V2 中 version 字段已过时,注释后可消除警告(保留仅为兼容旧环境)# version: '3.8'# 项目名称name: "java-ai-separated-architecture"services:# MySQL 数据库服务mysql:image: mysql:8.0container_name: ai-mysqlrestart: always # 异常退出自动重启environment:# 必须配置:MySQL根密码MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}# 自定义用户(若不需要可注释,仅用root即可)MYSQL_USER: ${MYSQL_USER}# 自定义用户密码MYSQL_PASSWORD: ${MYSQL_PASSWORD}# 初始化默认数据库MYSQL_DATABASE: ${MYSQL_DATABASE}# 字符集配置:避免中文乱码command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ciports:- "3307:3306"volumes:- mysql-data:/var/lib/mysql# 可选:初始化SQL脚本(需要时取消注释)- ./ai-service/init.sql:/docker-entrypoint-initdb.d/init.sqlhealthcheck:# 修复:适配特殊字符密码,改用mysql命令+延长检查容错test: ["CMD", "mysql", "-h", "localhost", "-uroot", "-p${MYSQL_ROOT_PASSWORD}", "-e", "SELECT1;", "--connect-timeout=5", "--silent"]interval: 10stimeout: 10sretries: 10start_period: 60s # 延长启动缓冲期(适配MySQL首次初始化耗时)networks:- ai-network# Python AI 服务ai-service:build: ./ai-servicecontainer_name: ai-servicerestart: always # 异常退出自动重启environment:# MySQL连接配置MYSQL_HOST: mysqlMYSQL_PORT: 3306MYSQL_USER: ${MYSQL_USER}MYSQL_PASSWORD: ${MYSQL_PASSWORD}MYSQL_DATABASE: ${MYSQL_DATABASE}# 大模型配置(从.env注入)DASHSCOPE_API_KEY: ${DASHSCOPE_API_KEY}DASHSCOPE_BASE_URL: ${DASHSCOPE_BASE_URL}ports:- "${AI_SERVICE_PORT}:8008"volumes:- ./travel_docs:/app/travel_docs- ./ai-service/app:/app/app# AI服务健康检查(兼容无curl环境,改用python内置检查)healthcheck:test: ["CMD", "python", "-c", "importrequests;resp=requests.get('http://localhost:8008/health',timeout=3);exit(0)ifresp.status_code==200elseexit(1)"]interval: 5stimeout: 3sretries: 5start_period: 20sdepends_on:mysql:condition: service_healthy # 依赖MySQL健康状态networks:- ai-network# Java 后端服务java-service:build: ./java-layercontainer_name: java-layerrestart: always # 异常退出自动重启environment:SPRING_PROFILES_ACTIVE: dockerports:- "${JAVA_SERVICE_PORT}:8088"depends_on:ai-service:condition: service_healthy # 依赖AI服务健康状态networks:- ai-network# 数据卷:持久化MySQL数据(删除容器后数据不丢失)volumes:mysql-data:# 自定义网络:隔离服务通信,提升安全性networks:ai-network:driver: bridge
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。