1. 添加docker-compose

topo_dev
xueqingkun 9 months ago
parent 69455126c8
commit cfd053a723

@ -0,0 +1,30 @@
# mysql相关配置内容
MYSQL_PASSWORD=12345678
MYSQL_PORT=5415
# minio相关配置内容
MINIO_CONSOLE_PORT=9001
MINIO_PORT=9000
MINIO_USER=admin
MINIO_PASSWORD=12345678
# neo4j相关配置内容
NEO4J_PORT_HTTP=7474
NEO4J_PORT_BOLT=7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=123456
# 伏羲后台服务相关配置内容
WEB_HTTP_PORT=9380
SPRING_PROFILES_ACTIVE=bridge
OLLAMA_URL=http://192.168.10.70:11434
OLLAMA_MODEL=llama3-chinese:8b
LANGCHAIN_CHAT_URL=http://113.128.242.110:7861
# nginx相关配置内容
NGINX_HTTP_PORT=80
FU_HSI_SERVERS=fu-hsi-web:8097
TIMEZONE='Asia/Shanghai'

@ -0,0 +1,73 @@
## 🎬 快速开始
### 📝 前提条件
- CPU >= 16 核
- RAM >= 32 GB
- Disk >= 500 GB
- Docker >= 24.0.6 & Docker Compose >= v2.5.0
### 安装包结构说明
| 文件/文件夹 | 说明 |
| - |---------------|
| fu-hsi-nginx/ | 用于存放nginx静态文件 |
| fu-hsi-web/ | 用户存放后端服务程序 |
| .env | 应用的环境配置 |
| docker-compose.yml | docker-compose 配置文件 |
| docker-compose-base.yml | docker-compose 配置文件 |
### 🚀 启动服务
1. 加载镜像
```shell
# 进入deploy文件目录
cd ./deploy
# 加载镜像
docker load -i fu-shi-install.1.0.0.tar.gz
```
2. 修改配置文件
```shell
# 编辑配置文件
$ vi .env
# 根据环境修改配置文件
OLLAMA_URL:ollama访问地址
OLLAMA_MODEL:模型名称
LANGCHAIN_CHAT_URL:langchain-chat服务地址
# 其他配置项可保持默认值
```
3. 进入deploy目录,执行命令
```shell
docker compose up -d
```
等待程序启动完成即可,如果没有启动成功,可重试上面的命令。
启动完成后会打印出下面的日志信息:
[+] Running 5/5
✔ Container fu-hsi-mysql Healthy 0.0s
✔ Container fu-hsi-minio Running 0.0s
✔ Container fu-hsi-neo4j Running 0.0s
✔ Container fu-hsi-web Healthy 0.4s
✔ Container fu-hsi-nginx Started
4. 查看启动情况
```shell
$ docker compose ps
> docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
fu-hsi-minio quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z "/usr/bin/docker-ent…" minio 20 minutes ago Up 20 minutes 0.0.0.0:9000-9001->9000-9001/tcp
fu-hsi-mysql mysql:5.7 "docker-entrypoint.s…" mysql 20 minutes ago Up 20 minutes (healthy) 33060/tcp, 0.0.0.0:5415->3306/tcp
fu-hsi-neo4j neo4j:4.4 "tini -g -- /startup…" neo4j 20 minutes ago Up 20 minutes 0.0.0.0:7474->7474/tcp, 7473/tcp, 0.0.0.0:7687->7687/tcp
fu-hsi-nginx fu-hsi-nginx:1.0.0 "/docker-entrypoint.…" fu-hsi-nginx 20 minutes ago Up 17 minutes 0.0.0.0:80->80/tcp, 443/tcp
fu-hsi-web fu-hsi-web:1.0.0 "java -Xms256m -Xmx1…" fu-hsi-web 20 minutes ago Up 18 minutes (unhealthy) 0.0.0.0:9380->8097/tcp
```
## 🚀 访问服务
访问地址http://ip:9978/case-management

@ -0,0 +1,78 @@
services:
mysql:
image: mysql:5.7
container_name: fu-hsi-mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
- TZ=${TIMEZONE}
command:
--max_connections=100
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--default-authentication-plugin=mysql_native_password
--tls_version="TLSv1.2,TLSv1.3"
--init-file /data/application/init.sql
ports:
- ${MYSQL_PORT}:3306
volumes:
- ./mysql/data:/var/lib/mysql
- ./init.sql:/data/application/init.sql
networks:
- fu-hsi
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}"]
interval: 10s
timeout: 10s
retries: 3
start_period: 40s
restart: always
minio:
image: quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
container_name: fu-hsi-minio
command: server --console-address ":9001" /data
ports:
- ${MINIO_PORT}:9000
- ${MINIO_CONSOLE_PORT}:9001
environment:
- MINIO_ROOT_USER=${MINIO_USER}
- MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}
- TZ=${TIMEZONE}
volumes:
- ./minio/data:/data
networks:
- fu-hsi
# healthcheck:
# test: ["CMD","curl -fs http://localhost/ || exit 1"]
# interval: 30s
# timeout: 10s
# retries: 3
# start_period: 20s
restart: always
neo4j:
image: neo4j:4.4
container_name: fu-hsi-neo4j
ports:
- ${NEO4J_PORT_HTTP}:7474
- ${NEO4J_PORT_BOLT}:7687
environment:
- NEO4J_AUTH=${NEO4J_USERNAME}/${NEO4J_PASSWORD}
volumes:
- ./neo4j/data:/data
- ./neo4j/logs:/logs
- ./neo4j/import:/var/lib/neo4j/import
- ./neo4j/plugins:/var/lib/neo4j/plugins
networks:
- fu-hsi
# healthcheck:
# test: ["CMD", "curl", "-sS", "http://localhost:7474"]
# interval: 30s
# timeout: 10s
# retries: 5
# start_period: 40s
# restart: always
networks:
fu-hsi:
driver: bridge

@ -0,0 +1,49 @@
include:
- path: ./docker-compose-base.yml
env_file: ./.env
services:
fu-hsi-web:
depends_on:
mysql:
condition: service_started
neo4j:
condition: service_started
minio:
condition: service_started
image: fu-hsi-web:1.0.0
container_name: fu-hsi-web
ports:
- ${WEB_HTTP_PORT}:8097
volumes:
- ./fu-hsi-web/:/data/fu-hsi/web/
environment:
- TZ=${TIMEZONE}
- spring.profiles.active=${SPRING_PROFILES_ACTIVE}
- ollama.url=${OLLAMA_URL}
- ollama.model=${OLLAMA_MODEL}
- langChain-chat.url=${LANGCHAIN_CHAT_URL}
- datasource.username=${MYSQL_PASSWORD}
- neo4j.username=${NEO4J_USERNAME}
- neo4j.password=${NEO4J_PASSWORD}
- minio.username=${MINIO_USER}
- minio.password=${MINIO_PASSWORD}
networks:
- fu-hsi
restart: always
fu-hsi-nginx:
depends_on:
fu-hsi-web:
condition: service_started
image: fu-hsi-nginx:1.0.0
container_name: fu-hsi-nginx
ports:
- ${NGINX_HTTP_PORT}:80
volumes:
- ./fu-hsi-nginx/html/:/usr/share/nginx/html/
environment:
- TZ=${TIMEZONE}
- FU_HSI_SERVERS=${FU_HSI_SERVERS}
networks:
- fu-hsi
restart: always

@ -0,0 +1,69 @@
spring:
application:
name: fu-hsi-server
ai:
ollama:
base-url: ${ollama.url}
chat:
enabled: true
options:
model: ${ollama.model}
# 控制模型在请求后加载到内存中的时间(稍微长一点的时间,避免重复加载浪费性能,加快处理速度)
keep_alive: 30m
# 例如0.3
temperature: 0.8
format: json
# 减少产生废话的可能性。较高的值例如100将给出更多样化的答案而较低的值例如10将更加保守。
top-k: 90
# 与top-k一起工作。较高的值例如0.95将导致更加多样化的文本而较低的值例如0.5)将生成更加集中和保守的文本。
top-p: 0.95
# 随机数种子,用于控制模型输出的随机性。
seed: 1
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://fu-hsi-mysql:3306/nx_llm?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=GMT%2B8
username: root
password: ${datasource.username}
initial-size: 5 # 初始化大小
min-idle: 10 # 最小连接数
max-active: 20 # 最大连接数
max-wait: 60000 # 获取连接时的最大等待时间
min-evictable-idle-time-millis: 300000 # 一个连接在池中最小生存的时间,单位是毫秒
time-between-eviction-runs-millis: 60000 # 多久才进行一次检测需要关闭的空闲连接,单位是毫秒
filters: stat,wall # 配置扩展插件stat-监控统计log4j-日志wall-防火墙防止SQL注入去掉后监控界面的sql无法统计
validation-query: SELECT 1 # 检测连接是否有效的 SQL语句为空时以下三个配置均无效
test-on-borrow: true # 申请连接时执行validationQuery检测连接是否有效默认true开启后会降低性能
test-on-return: true # 归还连接时执行validationQuery检测连接是否有效默认false开启后会降低性能
test-while-idle: true # 申请连接时如果空闲时间大于timeBetweenEvictionRunsMillis执行validationQuery检测连接是否有效默认false建议开启不影响性能
stat-view-servlet:
enabled: false # 是否开启 StatViewServlet
filter:
stat:
enabled: true # 是否开启 FilterStat默认true
log-slow-sql: true # 是否开启 慢SQL 记录默认false
slow-sql-millis: 5000 # 慢 SQL 的标准,默认 3000单位毫秒
merge-sql: false # 合并多个连接池的监控数据默认false
data:
neo4j:
database: neo4j
neo4j:
uri: bolt://fu-hsi-neo4j:7687
authentication:
username: ${neo4j.username}
password: ${neo4j.password}
minio:
endpoint: http://fu-hsi-minio:9002
accessKey: ${minio.username}
secretKey: ${minio.password}
bucketName: nxfuhsi
logging:
level:
org.springframework.ai: TRACE
langChain-chat:
url:
Loading…
Cancel
Save