Browse Source

init

master
wangxiang 2 years ago
commit
e90c421cab
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 22
      .gitignore
  2. 166
      README.md
  3. 16
      cloudreve/docker-compose.yml
  4. 33
      gitea/docker-compose.yml
  5. 61
      keycloak/docker-compose.yml
  6. 25
      kkFileView/docker-compose.yml
  7. 37
      mysql/conf/my.cnf
  8. 29
      mysql/docker-compose.yml
  9. 10
      nacos/.env.development
  10. 10
      nacos/.env.production
  11. 17
      nacos/README.md
  12. 21
      nexus/docker-compose.yml
  13. 9
      nginx/Dockerfile
  14. 36
      nginx/default.conf
  15. 16
      nginx/docker-compose.yaml
  16. 33
      nginx/secret/139.9.72.189/ca.pem
  17. 31
      nginx/secret/139.9.72.189/cert.pem
  18. 42
      nginx/secret/139.9.72.189/docker-ssl-server.sh
  19. 42
      nginx/secret/139.9.72.189/docker-ssl.sh
  20. 51
      nginx/secret/139.9.72.189/key.pem
  21. 32
      nginx/secret/139.9.72.189/server-cert.pem
  22. 51
      nginx/secret/139.9.72.189/server-key.pem
  23. 22
      oracle/docker-compose.yml
  24. 24
      portainer/docker-compose.yml
  25. 0
      redis/conf/redis.conf
  26. 25
      redis/docker-compose.yml
  27. 96
      rocketmq/brokerconf/broker.conf
  28. 51
      rocketmq/docker-compose.yml
  29. 15
      seata/conf/nacos/README.md
  30. 134
      seata/conf/nacos/config.txt
  31. 120
      seata/conf/nacos/nacos-config.sh
  32. 134
      seata/conf/nacos/seataServer.properties
  33. 103
      seata/conf/registry.conf
  34. 35
      seata/docker-compose.yml
  35. 8
      upsource/README.md
  36. 21
      upsource/docker-compose.yml
  37. 19
      zookeeper/docker-compose.yml

22
.gitignore vendored

@ -0,0 +1,22 @@
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
coverage/
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
.eslintcache
# cloud ignore
kicc-bigscreen-design/
kicc-form-design/
kicc-workflow-design/

166
README.md

@ -0,0 +1,166 @@
<h1 align="center">
<b>
<a href="https://godolphinx.org"><img src="https://godolphinx.org/images/dolphin-platform-logo.svg" /></a><br>
</b>
</h1>
<p align="center"> 一个快速开发软件的平台 </p>
<p align="center">
<a href="https://godolphinx.org/"><b>Website</b></a>
<a href="https://godolphinx.org/vue3/description.html"><b>Documentation</b></a>
</p>
<div align="center">
<a href="https://godolphinx.org">
<img src="https://img.shields.io/npm/l/vue.svg?sanitize=true">
</a>
<a href="https://gitpod.io/#https://github.com/wangxiang4/dolphin-admin">
<img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod&style=flat-square">
</a>
<a href="https://discord.gg/DREuQWrRYQ">
<img src="https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true"/>
</a>
</div>
## 🐬 介绍
海豚生态计划-打造一个web端,安卓端,ios端的一个海豚开发平台生态圈,不接收任何商业化,并且完全免费开源(包含高级功能)。
## 💪 愿景
让人人都可以快速高效的开发软件
## ✨ 特性
- **最新技术栈**:使用 Vue3/vite2 等前端前沿技术开发
- **TypeScript**: 集成TypeScript管控项目,具有可预测的静态类型,提高了代码的可读性、可维护性和可靠性
- **主题**:可配置的主题
- **国际化**:内置完善的国际化方案
- **权限**:内置完善的动态嵌套路由权限生成实现
- **组件**:二次封装了多个常用的组件
- **地图**:高德地图在线规划路线导航
- **多租户**:使用SASS提供独立的、隔离的数据管理,在线无缝切换多个租户数据
- **动画**:内部默认实现大量的动画过渡、让组件切换更加丝滑
- **UI组件库**:集成ant-design-vue,提供了一系列高质量、易于使用的组件,可快速迭代项目开发
- **图表组件**:集成echarts让图表组件开箱即用,提供了各种类型的图表和强大的可定制性
- **工具**:集成lodash,@vueuse/core,降低相关API的学习成本,提高工作效率,封装了诸多常用的函数和操作,让写vue3也可以甜甜的
- **状态管理**:集成pinia采用了基于函数式编程的方式来处理状态的更新和变化,更加直观的 API 和高性能的响应式状态管理方案
- **可拖拽**:集成SortableJS提供了用于创建可排序列表和网格的功能,可以用于实现拖放排序等交互式用户界面
- **富文本编辑器**:一个基于 JavaScript 的所见即所得的富文本编辑器,TinyMCE的功能非常灵活和高度可定制,开源版功能也比较齐全
- **高级表格组件**:集成vxe-table提供了丰富的表格功能和灵活的配置选项,可以用于展示和编辑各种类型的数据,同时也支持异步数据和虚拟滚动等优化性能的特性
- **渐进式网络应用程序**:集成vite-plugin-pwa,用于将Vue.js或其他前端应用程序转换为具有离线缓存和本地存储能力的PWA
## <img width="28" style="vertical-align:middle" src="https://godolphinx.org/images/hacktoberfest-logo.svg"> 黑客节
加入[Github HackToberFest](https://hacktoberfest.com/) 开始为此项目做出贡献.
## 🔨 开发目录
```
├─ dolphin-admin -- 海豚vue3-管理系统
│ ├─build -- 构建打包配置
│ │ ├─config -- 通用配置
│ │ ├─generate -- 资源生成配置(less变量,icon)
│ │ ├─script -- 附加构建脚本
│ │ ├─vite -- vite配置
│ ├─docker -- docker容器配置
│ ├─public -- 公共资源目录
│ ├─src -- 开发的目录
│ │ ├─api -- 请求接口
│ │ │ ├─common -- 通用请求数据类型(根据后端通用实体类定义)
│ │ │ │ ├─base -- 基础类型
│ │ │ │ ├─data -- 数据类型
│ │ │ ├─platform -- 微服务框架平台业务api
│ │ │ │ ├─common -- 通用业务模块api
│ │ │ │ ├─core -- 系统核心业务api
│ │ │ │ ├─monitor -- 运维监控业务模块api
│ │ │ │ ├─system -- 系统业务模块api
│ │ ├─assets -- 开发资源目录(会被打包编译)
│ │ ├─components -- 全局组件
│ │ │ ├─AMap -- 高德地图设计器
│ │ │ ├─Application -- 应用核心组件
│ │ │ ├─Authority -- 角色权限控制
│ │ │ ├─Basic -- 系统基础组件
│ │ │ ├─Button -- 按钮
│ │ │ ├─ClickOutSide -- 元素点击监听包装
│ │ │ ├─Container -- 组件包装容器
│ │ │ ├─ContextMenu -- 右击菜单上下文
│ │ │ ├─CountDown -- 验证码倒计时
│ │ │ ├─CountTo -- 计数器
│ │ │ ├─Cropper -- 图片裁剪
│ │ │ ├─Description -- 详细页面
│ │ │ ├─Drawer -- 弹出抽屉
│ │ │ ├─Dropdown -- 下拉列表
│ │ │ ├─Excel -- Excel导入导出
│ │ │ ├─Form -- 动态表单
│ │ │ ├─Icon -- icon图标
│ │ │ ├─Loading -- 加载遮罩层
│ │ │ ├─Markdown -- Markdown编辑器
│ │ │ ├─Menu -- 顶部菜单模式菜单
│ │ │ ├─Modal -- 弹出模态框
│ │ │ ├─Page -- 页面包装
│ │ │ ├─Qrcode -- 二维码生成
│ │ │ ├─Scrollbar -- 滚动条
│ │ │ ├─SimpleMenu -- 侧边栏菜单
│ │ │ ├─StrengthMeter -- 密码强度检查
│ │ │ ├─Table -- 动态表格
│ │ │ ├─Time -- 当前时间显示
│ │ │ ├─Tinymce -- 功能齐全的富文本编辑器
│ │ │ ├─Transition -- 过度动画
│ │ │ ├─Tree -- 树形控件
│ │ │ ├─Upload -- 文件上传
│ │ ├─directives -- 自定义指令
│ │ ├─enums -- 全局枚举
│ │ ├─hooks -- vue组合API钩子工具
│ │ │ ├─component -- 组件相关钩子
│ │ │ ├─core -- 系统核心相关钩子
│ │ │ ├─event -- 事件相关钩子
│ │ │ ├─setting -- 全局设置相关钩子
│ │ │ ├─web -- 网页相关钩子
│ │ ├─layouts -- 系统总布局
│ │ │ ├─default -- 默认总系统布局框架组件
│ │ │ ├─iframe -- 内嵌页面
│ │ │ ├─page -- 路由模块页面
│ │ ├─locales -- 国际化
│ │ ├─logics -- 系统全局控制逻辑
│ │ ├─router -- 路由
│ │ ├─settings -- 默认全局设置配置
│ │ ├─store -- 全局状态管理
│ │ ├─utils -- 工具类
│ │ │ ├─auth -- 存储授权信息缓存
│ │ │ ├─cache -- 缓存实例工具
│ │ │ ├─event -- 事件工具
│ │ │ ├─factory -- 组件工厂
│ │ │ ├─file -- 文件工具
│ │ │ ├─helper -- 路由转换帮助工具
│ │ │ ├─http -- api请求工具
│ │ │ ├─lib -- 图表组件库
│ │ ├─views -- 页面模块组件
│ │ │ ├─common -- 通用业务页面
│ │ │ ├─core -- 系统核心业务页面
│ │ │ ├─dashboard -- 仪表板分析页面
│ │ │ ├─level -- 多级菜单页面
│ │ │ ├─monitor -- 运维监控业务页面
│ │ │ ├─system -- 系统业务页面
│ ├─types -- 全局类型定义
```
## 🍀 需要注意的地方
### 1.打包前应该如何执行typescript类型检查
- **vite是不支持typescript类型检查,因为没必要,现在的开发工具都是支持eslint的,让开发工具接管类型检查就行啦**
- **vite官网TypeScript介绍:https://vitejs.bootcss.com/guide/features.html#typescript**
- **注意:既然vite不支持typescript类型检查,那我们就应该要在发布编译阶段手动执行 vue-tsc 命令检查类型是否符合typescript类型规范**
## 🤔 一起讨论
加入我们的 [Discord](https://discord.gg/DREuQWrRYQ) 开始与大家交流。
## 🤗 我想成为开发团队的一员!
欢迎😀!我们正在寻找有才华的开发者加入我们,让海豚开发平台变得更好!如果您想加入开发团队,请联系我们,非常欢迎您加入我们!💖
## 在线一键设置
您可以使用 Gitpod,一个在线 IDE(开源免费)来在线贡献或运行示例。
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/wangxiang4/dolphin-admin)
## 📄 执照
[Dolphin Development Platform 是获得MIT许可](https://github.com/wangxiang4/dolphin-admin/blob/master/LICENSE) 的开源软件 。

16
cloudreve/docker-compose.yml

@ -0,0 +1,16 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
version: "3"
services:
cloudreve:
image: xavierniu/cloudreve
container_name: cloudreve
hostname: cloudreve
restart: always
volumes:
- /usr/software/dockerDatabase/cloudreve/config:/cloudreve/config
- /usr/software/dockerDatabase/cloudreve/uploads:/cloudreve/uploads
- /usr/software/dockerDatabase/cloudreve/avatar:/cloudreve/avatar
ports:
- 9005:5212

33
gitea/docker-compose.yml

@ -0,0 +1,33 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# 更多信息请参考官网:https://docs.gitea.io/en-us/install-with-docker/
version: "3"
services:
# git私有库,公司代码管理服务器
gitea-server:
image: gitea/gitea:1.16.3
container_name: gitea-server
environment:
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=124.71.99.36:3158
- GITEA__database__NAME=db_gitea
- GITEA__database__USER=u_git_account
- GITEA__database__PASSWD=#Gitea@&2021%
hostname: gitea-server
restart: always
volumes:
#- gitea:/data
- /usr/software/dockerDatabase/gitea/data:/data
- /usr/software/dockerDatabase/gitea/timezone:/etc/timezone:ro
- /usr/software/dockerDatabase/gitea/localtime:/etc/localtime:ro
ports:
- 8066:3000
- 8065:22
# 配置卷
volumes:
gitea:
driver: local

61
keycloak/docker-compose.yml

@ -0,0 +1,61 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# 身份验证资源访问管理平台(解决多个系统之间用户数据一致并且提供sso登陆)
# https://www.keycloak.org/server/all-config
version: '3'
services:
keycloak:
image: bitnami/keycloak:22.0.1-debian-11-r4
container_name: keycloak
hostname: keycloak
restart: always
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=kanglai123
- DB_VENDOR=postgres
- DB_ADDR=postgresql
- DB_PORT=5432
- DB_DATABASE=kicc_keycloak
- DB_SCHEMA=public
- DB_USER=postgresql
- DB_PASSWORD=kanglai@2023
#- KC_HTTP_RELATIVE_PATH=/auth
- KEYCLOAK_HTTPS_CERTIFICATE_FILE=/cert/ssl.pem
- KEYCLOAK_HTTPS_CERTIFICATE_KEY_FILE=/cert/ssl.key
- KEYCLOAK_HTTPS_USE_PEM=true
- KEYCLOAK_ENABLE_HTTPS=true
- KEYCLOAK_PRODUCTION=true
volumes:
- /usr/software/dockerDatabase/keycloak/cert:/cert
- /usr/software/dockerDatabase/keycloak/data:/opt/jboss/keycloak/standalone/data
- /usr/software/dockerDatabase/keycloak/themes:/opt/jboss/keycloak/themes
depends_on:
- postgresql
ports:
- 8889:8080
- 8443:8443
networks:
- keycloak_net
postgresql:
image: postgres:15.3
container_name: postgresql
hostname: postgresql
restart: always
environment:
POSTGRES_USER: postgresql
POSTGRES_PASSWORD: kanglai@2023
POSTGRES_DB: kicc_keycloak
volumes:
- postgresql:/var/lib/postgresql/data
ports:
- 5438:5432
networks:
- keycloak_net
volumes:
postgresql:
driver: local
networks:
keycloak_net: {}

25
kkFileView/docker-compose.yml

@ -0,0 +1,25 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
version: "3"
services:
fileview:
image: keking/kkfileview:latest
container_name: kicc-fileview
hostname: kicc-fileview
restart: always
environment:
# https://github.com/kekingcn/kkFileView/blob/master/server/src/main/config/application.properties
KK_FILE_DIR: "/file"
KK_FILE_UPLOAD_ENABLED: true
networks:
- docker-cloud_default
volumes:
- /usr/software/dockerDatabase/kicc-fileview/file:/file
ports:
- 8086:8012
networks:
docker-cloud_default:
external: true

37
mysql/conf/my.cnf

@ -0,0 +1,37 @@
[mysqld]
# 跨库多表连接查询
federated = 1
# 设置3306端口
port = 3306
# 允许最大连接数
max_connections = 2000
# 创建新表时将使用的默认存储引擎
default-storage-engine = INNODB
# 不区分大小写
lower_case_table_names = 1
# 禁止域名解析
skip-name-resolve = 1
# 记录错误日志
log_error = /var/log/mysql/error.log
# 指定传输数据包大小
max_allowed_packet = 1024M
# 客户端高并发等待连接队列
back_log = 2048
# 移除 SQL92(ONLY_FULL_GROUP_BY) 标准使用GROUP BY函数查出来的列必须在包含在 GROUP BY 中
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 日志保留30天
expire_logs_days = 30
# 记录查询日志
slow_query_log_file = /var/log/mysql/mysql-slow.log
# 启用慢查询日志记录
slow_query_log = 1
# 指定超过1秒为慢查询
long_query_time = 1
# 缓冲池大小
innodb_buffer_pool_size = 2G
# I/O 写入的线程数量
innodb_write_io_threads = 8
# I/O 读取的线程数量
innodb_read_io_threads = 24
# 缓冲池的实例数
innodb_buffer_pool_instances=32

29
mysql/docker-compose.yml

@ -0,0 +1,29 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
version: '3'
services:
# mysql 服务器
mysql:
image: mysql:5.7.32
container_name: mysql
hostname: mysql
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: kanglai@2022
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
volumes:
- mysql:/var/lib/mysql
- /usr/software/dockerDatabase/mysql/my.cnf:/etc/mysql/my.cnf
restart: always
ports:
- 8052:3306
# 配置卷
volumes:
mysql:
driver: local

10
nacos/.env.development

@ -0,0 +1,10 @@
MODE=standalone
PREFER_HOST_MODE=hostname
NACOS_APPLICATION_PORT=8848
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=139.9.72.189
MYSQL_SERVICE_DB_NAME=kicc_config
MYSQL_SERVICE_PORT=8052
MYSQL_SERVICE_USER=u_kanglai_account
MYSQL_SERVICE_PASSWORD='$kanglai.<2021>#'
NACOS_AUTH_TOKEN_EXPIRE_SECONDS=18000

10
nacos/.env.production

@ -0,0 +1,10 @@
MODE=standalone
PREFER_HOST_MODE=hostname
NACOS_APPLICATION_PORT=8848
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=124.71.99.36
MYSQL_SERVICE_DB_NAME=db_kicc_config
MYSQL_SERVICE_PORT=3158
MYSQL_SERVICE_USER=u_kicc_account
MYSQL_SERVICE_PASSWORD='#KICC$(2023)&0215'
NACOS_AUTH_TOKEN_EXPIRE_SECONDS=18000

17
nacos/README.md

@ -0,0 +1,17 @@
```bash
#配置docker镜像代理
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://bd6wzfvy.mirror.aliyuncs.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
```

21
nexus/docker-compose.yml

@ -0,0 +1,21 @@
# PROJECT: dolphin
# VERSION: 1.0.0
# Author: wangxiang4
# Maven私有库
# https://github.com/sonatype/docker-nexus3
# https://registry.hub.docker.com/r/sonatype/nexus3
# password is kanglai@2023
version: "3"
services:
nexus:
image: sonatype/nexus3:3.58.1
container_name: nexus
hostname: nexus
restart: always
ports:
- 7779:8081
volumes:
- nexus-data:/nexus-data
volumes:
nexus-data: {}

9
nginx/Dockerfile

@ -0,0 +1,9 @@
FROM nginx
COPY ./secret /secret
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
RUN /bin/bash -c 'echo init ok'

36
nginx/default.conf

@ -0,0 +1,36 @@
# 如果没有显式声明 default server 则第一个 server 会被隐式的设为 default server
server {
# 自定义访问端口
listen 80;
# 服务名称
server_name git.kanglailab.com;
location / {
proxy_pass http://localhost:8066;
}
}
server {
# 自定义访问端口
listen 80;
# 服务名称
server_name fileview.kanglailab.com;
location / {
proxy_pass http://localhost:8086;
}
}
# docker连接ssl安全代理
server {
listen 443 ssl;
server_name docker-tools.klkics.com;
ssl_certificate /secret/139.9.72.189/server-cert.pem;
ssl_certificate_key /secret/139.9.72.189/server-key.pem;
# 启用客户端证书验证
ssl_client_certificate /secret/139.9.72.189/ca.pem;
ssl_verify_client on;
location / {
proxy_pass http://localhost:2279;
}
}

16
nginx/docker-compose.yaml

@ -0,0 +1,16 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
version: '3'
services:
nginx:
build:
context: .
restart: always
container_name: nginx
image: nginx
network_mode: 'host'
ports:
- 80:80
- 443:443

33
nginx/secret/139.9.72.189/ca.pem

@ -0,0 +1,33 @@
-----BEGIN CERTIFICATE-----
MIIFsDCCA5gCCQDWLz8mWUwmsTANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMC
Q04xETAPBgNVBAgMCENoYW5nU2hhMRIwEAYDVQQHDAlXYW5nQ2hlbmcxEDAOBgNV
BAoMB2RvbHBoaW4xDDAKBgNVBAsMA2RldjEgMB4GA1UEAwwXZG9ja2VyLXRvb2xz
Lmtsa2ljcy5jb20xIDAeBgkqhkiG9w0BCQEWETE4Mjc5NDU5MTFAcXEuY29tMCAX
DTIzMDkxNDE0MDYxN1oYDzIxMjMwODIxMTQwNjE3WjCBmDELMAkGA1UEBhMCQ04x
ETAPBgNVBAgMCENoYW5nU2hhMRIwEAYDVQQHDAlXYW5nQ2hlbmcxEDAOBgNVBAoM
B2RvbHBoaW4xDDAKBgNVBAsMA2RldjEgMB4GA1UEAwwXZG9ja2VyLXRvb2xzLmts
a2ljcy5jb20xIDAeBgkqhkiG9w0BCQEWETE4Mjc5NDU5MTFAcXEuY29tMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7wb3SxdAkkd/bElupSV2G1zgHLa
C95CS2V2RanDISvQO/w7LbZsbYv8h+rAC96ExXeX4pkhMywWN8I42DvqP1TUGP0F
wGIi0RlYzcCyhu8J94sx3ntcWFDMJ19Ub7q9YEPH4R1DwzBOF5lJeZb72zcuHzxr
0T4CK2UDFPhAzu1n6AZc37LS3oobKN6CNCegUAkaxnTj2AKDHx5QOnx4ZlfboNju
Y7ncAfZi7VYmWFsatEymTR/85wKWIIrOxuhGUa27zjM7vm+sc3rKT22RWMCqSceV
5UA1++6kMjZl/InXGG6k0rTAJLO4XUcYAV5Manx922Pbiv7QR3R3RpkWwMHtyMYF
EhIlRtk7v9kVoKhy7ez011EPgxLvB+kqz9Z+y88rsP/h3CPAbYDTM+Q8zFLG/qkK
io+/m+5ZsQPAYO8kIKsom9iEoAKFgsi4v7WYdLlmiOgBig4JLrpLTOsAeTP+9fxZ
Eqt2+nb9r9KGSNr6Cz3uaD0dTySpY62283MxAYQFQWDYwtBdfStGCqJBnhWjj4e1
3Hzrls/0MuxaiKQ/2dB+s6aA7aQ+gf4+aEG8SyVgbW9T01uefYkydDq2G2b0yaVU
8JpiaNnjMr2wd6RljTdYTTfaGRlmVOsPVCms3WlwQ0UUDCukmL3dqmI8qbhZZxzZ
c2qI7DJsp602y1kCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAC8aqFgxKsFc4YDdX
C93xEU689RbFR0BMphwbxeSt4F//jfbBnlCRqFhuvhFjquHOD08OGjKpEmBvKA7P
yoE6UBEraWgHVvNbRwAPCX8w7Nf+XaRIpO9uqTE+yH4JcxZASgFirhanrjH4i4Au
PyfGgt079N7vNWjsT3OfzKRiNh6NLXMCyN/8fT++C0tZwjT1WSyn5qoOz3kn+nWh
XVaU91LVu1vzlpjzwHCkBh9aU7YLK0tDjMyP8qXHl30X6OIHicwiJ0MarkPxYoc7
S8gzWtOCjL04C0qqHXh/LqkhxInz1myDm7hKc/hjzZxbVhUEOEJHhTLUNGjWvH7V
UWFoKReJIgypOqwPqxX02745rgG3uYrC12VMO6mcx/TC/LcOJmhE2CaAFWEE5mC6
lsihGtikrs47echFduO60oeSQ0gtwwkVyM2zjMYwarboek7RhBouPwETiHPntmMn
xp10wpIxN7ltQlIz8XEYOuwpOSbmao6OieEjcvwKEza2d1JsridwVTaWcbTFDU2p
PhIlOLLghOS4Eb1R1GqPF/V+oyCRfAS2bkX8AqVgvS4DMZTvVTxYdvQCThA/7HjE
Eyi/cWJUGo5wxys0IvdKSy5fuEbyrX96+n1la7cVezk6N+ETUwN81GeY2khmfpUm
YAZsQ/bD+nsESmlmRaL844zZXgA=
-----END CERTIFICATE-----

31
nginx/secret/139.9.72.189/cert.pem

@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFRjCCAy6gAwIBAgIJAJwFrq2p2N5sMA0GCSqGSIb3DQEBCwUAMIGYMQswCQYD
VQQGEwJDTjERMA8GA1UECAwIQ2hhbmdTaGExEjAQBgNVBAcMCVdhbmdDaGVuZzEQ
MA4GA1UECgwHZG9scGhpbjEMMAoGA1UECwwDZGV2MSAwHgYDVQQDDBdkb2NrZXIt
dG9vbHMua2xraWNzLmNvbTEgMB4GCSqGSIb3DQEJARYRMTgyNzk0NTkxMUBxcS5j
b20wIBcNMjMwOTE0MTQwNjE5WhgPMjEyMzA4MjExNDA2MTlaMBExDzANBgNVBAMM
BmNsaWVudDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALVOKNpTStYr
yvFcjpcN5O3Tyyap7iK9Yw+fih+PZs7t2QYRldwxhayPnanNtMETbC/b+fUVuX3A
nSt9KTJJdmEcN/5UnLdh6BLmwjN31yFvmor3d2+OpnFMoT9En1CZU1KWsnKg35ZW
w09+5/Ebks6K+bOXeB7o3EY7JEOXCvyMAQrQ1SL9WMcF3RRqY5wJ3UlWUI8vVowc
1WTmh8ZtyKLuNYBhdb95edwmxYOZBJxceLzzJEGsQ6NCkXN3zEXjUb84KRXeijtQ
oa177MFiLfABJZYMf4wwCRgy76GcaVsZCePuHPcXZj6XytxuPOpRDpPJVH23cL+v
dlroHOwr2U++53No0Wz24lRvFB3KcwzobMdeOJI31JF0mzxwCRLSjCu//uj3LFr/
1OD5Ctou3vkSPmGs3k0Scxnep+gbN9WpJVCNub/ZOTS5jcRc8vnhmFvescBtVI1c
+bjBcnB8HPV3e1yZwRy5EVqkuQjQRdZrhJYkXz5o4H1GAi9rhIUU8x/2mUh+nV0T
8/vW+fv/Zt9W2eLD3tsBUib3l1AmqQCOBiMuogxvTSXwpD6+oHL/K+cCuABbRmtu
bpeMp1x2rsguGvi1C5NVIsv6xXI+evoB6eJ6SDQAYOcEy4WRFLRpzO8+zjbBKoV3
/0a+Y+eb3+VLUYRyCaqYPvP3P5EeV5UTAgMBAAGjFzAVMBMGA1UdJQQMMAoGCCsG
AQUFBwMCMA0GCSqGSIb3DQEBCwUAA4ICAQAmQkMF4NA28xTZSZ+U7+pjeiM8Q68N
WIjyyRmI1BkU3RIT+mR19imcr+6CI0FgsV4/zQ1pCc7QME6jTrON7fk98wAeVrkP
Q07iHzX5kWvSDlZmYE9h0e3X1ded3F/UQQKWLeIpyLox6Rp4A4nQzacGfUmA8gr+
0yQylMdnxpEA68s63ipix03s9fvqu9jZUeitVKbCCVXhwldch4Fx2E+gLqd8YinK
lzMeMIA/en1udQjyjm0bbSnyuBnzAU//VgO3DBxc+9wUtNNZj5hzYJvPb/B2R7dy
6nyX2bo+lMK+8IFOKm2gk8ADfRC8syHnpbMZwcyDs0ZqoRV7fhrQJMN3hXVSLyCO
umY+6TdPoV09oqsIOLBbWYoUtKRyHyVbGzksGLrVi99aRAbrJSVaEA5AX/Wx/uGL
r/wyij7Ueo/6Ocn4Ms0QZZu+g1haX2KKWgZu/1g4L1z56hz7OXwgRmS/y38IQYzs
OLpFCQAQjPhXILyqxMM5vl6997eS34VbFPOBlbdpkNlLR8l6MDTbn8KaiQbrY4oQ
c7VLAp2CCTAM6HRLwTVsgTr0B/3IpwdQXLAA/vKb3lr7wjXMU/W2AuLrMn7ncbtc
d7+nbVM83oss889DrV2LnSjYwHLqHowlbRYnYA6bj0O9lk60EJApRcz+4XwoLKii
MgJtL1mOdEA6ZQ==
-----END CERTIFICATE-----

42
nginx/secret/139.9.72.189/docker-ssl-server.sh

@ -0,0 +1,42 @@
#!/bin/bash
#相关配置信息
HOST="139.9.72.189"
PASSWORD="springcloudgateway"
COUNTRY="CN"
STATE="ChangSha"
CITY="WangCheng"
ORGANIZATION="dolphin"
ORGANIZATIONAL_UNIT="dev"
EMAIL="1827945911@qq.com"
###开始生成文件###
echo "开始生成文件"
#切换到生产密钥的目录
mkdir -p /opt/docker/certs
cd /opt/docker/certs
#生成ca私钥(使用aes256加密)
openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 4096
#生成ca证书,填写配置信息(签发了100年)
openssl req -new -x509 -passin "pass:$PASSWORD" -days 36500 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$HOST/emailAddress=$EMAIL"
#生成server证书私钥文件
openssl genrsa -out server-key.pem 4096
#生成server证书请求文件
openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
#使用CA证书及CA密钥以及上面的server证书请求文件进行签发,生成server自签证书
sh -c 'echo "subjectAltName=DNS:'$HOST',IP:'$HOST'" > extfile.cnf'
sh -c 'echo "extendedKeyUsage=serverAuth" >> extfile.cnf'
openssl x509 -req -days 36500 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem -extfile extfile.cnf
#生成client证书RSA私钥文件
openssl genrsa -out key.pem 4096
#生成client证书请求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
sh -c 'echo "extendedKeyUsage=clientAuth" > extfile-client.cnf'
#生成client自签证书(根据上面的client私钥文件、client证书请求文件生成)
openssl x509 -req -days 36500 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile-client.cnf
#更改密钥权限
chmod 0400 ca-key.pem key.pem server-key.pem
#更改密钥权限
chmod 0444 ca.pem server-cert.pem cert.pem
#删除无用文件
rm client.csr server.csr
echo "生成文件完成"
###生成结束###

42
nginx/secret/139.9.72.189/docker-ssl.sh

@ -0,0 +1,42 @@
#!/bin/bash
#相关配置信息
HOST="docker-tools.klkics.com"
PASSWORD="springcloudgateway"
COUNTRY="CN"
STATE="ChangSha"
CITY="WangCheng"
ORGANIZATION="dolphin"
ORGANIZATIONAL_UNIT="dev"
EMAIL="1827945911@qq.com"
###开始生成文件###
echo "开始生成文件"
#切换到生产密钥的目录
mkdir -p /Users/wangxiang/IdeaProjects/org/kicc/docker-cloud/nginx/secret/139.9.72.189
cd /Users/wangxiang/IdeaProjects/org/kicc/docker-cloud/nginx/secret/139.9.72.189
#生成ca私钥(使用aes256加密)
openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 4096
#生成ca证书,填写配置信息(签发了100年)
openssl req -new -x509 -passin "pass:$PASSWORD" -days 36500 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$HOST/emailAddress=$EMAIL"
#生成server证书私钥文件
openssl genrsa -out server-key.pem 4096
#生成server证书请求文件
openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
#使用CA证书及CA密钥以及上面的server证书请求文件进行签发,生成server自签证书
sh -c 'echo "subjectAltName=DNS:'$HOST'" > extfile.cnf'
sh -c 'echo "extendedKeyUsage=serverAuth" >> extfile.cnf'
openssl x509 -req -days 36500 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem -extfile extfile.cnf
#生成client证书RSA私钥文件
openssl genrsa -out key.pem 4096
#生成client证书请求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
sh -c 'echo "extendedKeyUsage=clientAuth" > extfile-client.cnf'
#生成client自签证书(根据上面的client私钥文件、client证书请求文件生成)
openssl x509 -req -days 36500 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile-client.cnf
#更改密钥权限
chmod 0400 ca-key.pem key.pem server-key.pem
#更改密钥权限
chmod 0444 ca.pem server-cert.pem cert.pem
#删除无用文件
rm client.csr server.csr
echo "生成文件完成"
###生成结束###

51
nginx/secret/139.9.72.189/key.pem

@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

32
nginx/secret/139.9.72.189/server-cert.pem

@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFezCCA2OgAwIBAgIJAJwFrq2p2N5rMA0GCSqGSIb3DQEBCwUAMIGYMQswCQYD
VQQGEwJDTjERMA8GA1UECAwIQ2hhbmdTaGExEjAQBgNVBAcMCVdhbmdDaGVuZzEQ
MA4GA1UECgwHZG9scGhpbjEMMAoGA1UECwwDZGV2MSAwHgYDVQQDDBdkb2NrZXIt
dG9vbHMua2xraWNzLmNvbTEgMB4GCSqGSIb3DQEJARYRMTgyNzk0NTkxMUBxcS5j
b20wIBcNMjMwOTE0MTQwNjE4WhgPMjEyMzA4MjExNDA2MThaMCIxIDAeBgNVBAMM
F2RvY2tlci10b29scy5rbGtpY3MuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
MIICCgKCAgEA2XURwjsCg97n4hd7IGSY+5Ie3puC0YbJQvZBfuaLWUHJa7hhypSU
7pC2ptRvNGpm1ZqJa2n6sSQEMbmplHr+LD2iJRe45gIb3XMGVnNZpZce64Ho5d8e
VeChieRRaIERh3GHlEusT0zHHSRmJW1l/zOWvkuqbq4tBlV2oL7kImk82xo7izee
uFsbeFm5zETWosTPF8R/kzcDcoFkLN3SsELkcswN3YceCjVvybzsTlTjAORqjYUH
sWe1xXhtuKJzjGNl7nOn+y1URfEiCX+sT4W/ICasHjLxaon1Bq8J9ckkw2zKtb2y
nchc2LHBX6MSD/r5gmxU+ycQHdCPaJtAje6B+2kMy5Sb0ETYOQBHe5mCDn+PReJD
kIiTfXok0xoVtdS7FlEhtn0Ot8YjVTBNTbqGfEa1H0LAw5IOL9Yx3uZP92Cr8Npu
+E2oDftwT54DTOvJJRKrCpN4VX0KUkZCpSI1LVaGAZValvB04JgOG8COpfiA3mFD
zeu2M9qL+AqslStQg+y0hod8cNCFn71LHBTY/NCFBHGXowedlnmRCg/AME+5+l8K
uFk+jcjKL7/2Cg4PGQ4OUrIAGeBkKs1YxWdhSJ5MIl+Z9fiximvHPEAZKbPHeoYf
e57QqDjEsijGrCd2FZPUETCiufKOHuMNt7Le0IVJDn8RgctaGoKjtb0CAwEAAaM7
MDkwIgYDVR0RBBswGYIXZG9ja2VyLXRvb2xzLmtsa2ljcy5jb20wEwYDVR0lBAww
CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggIBACY6tNKnNxzMI+Kgb24ksdOT
aNloMTYCjpqsBWSQzRtfmX2FDOT773xL3yFefdAQ1mGtA7MzxM8YJ7HglreQEpPo
ct8x62KqyvLaATzBhRqcolLOaZhde1wSQ+/Ti3USftZZASKbL9WKCb+dbXY7l4kM
xXl+4iO3vri/KpvunwcwKXthNTOIrAnJMA0NXvazM1yRrMJ79UfiIkjdEbmcvDJE
aRBQponQ7mYQrKAYqEcS9bUWpk9Pf+K38rjxxeI7EmNAHoWL+z0Ji9yjJ0b7XM+l
ICW6MZMavzoik8ZyOuKJMhcLN9vtS5NPJVOTt/uybK+6rzc6MNzTcR1iaRLTN7+l
MJyDDKNARtb3Z6YGxtt+FO2XvRSCjbo75xermydaZS3eJ0WX2FBWRAqPe7AJg1CO
ttlL+AWiQ6Y1cWHKUqw6XKwkz7UYF+udWqUadp7LlIkbrhcduhVdwIss4qXbF5py
rJQM0RG7/oXBI915OD06Wevf7MbIcNieUcmGfQzgRif9j4AwpucH19ibGth27aGP
uVHjrfy3oWIggNLOMPJnwPgdTz1LBwmm7Mz7xwYGEoqoVYUGFp7ICEJE1VoPBAku
CqkKczc+d6f5J3oHGCGqG+IbXUhx86Wn17dO+lixYrHKDfiJkFB9/O/m7GHDm8/q
arEYsUhNJes5LhdVDv6H
-----END CERTIFICATE-----

51
nginx/secret/139.9.72.189/server-key.pem

@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

22
oracle/docker-compose.yml

@ -0,0 +1,22 @@
# PROJECT: dolphin
# VERSION: 1.0.0
# Author: wangxiang4
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command
version: "3"
services:
oracleservice:
image: gvenzl/oracle-xe:11
container_name: oracledb
environment:
#设置sys和system用户密码
ORACLE_PASSWORD: wangxiang4123456123456
#自定义用户
APP_USER: wangxiang4
#自定义用户密码
APP_USER_PASSWORD: wangxiang4123456
ports:
- 1521:1521
volumes:
- /usr/software/dockerDatabase/oracle/oradata:/u01/app/oracle/oradata
restart: always

24
portainer/docker-compose.yml

@ -0,0 +1,24 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command
version: '3'
services:
# docker管理面板,已经中文汉化
portainer:
image: 6053537/portainer-ce
container_name: portainer
hostname: portainer
volumes:
- portainer_data:/data
- /usr/software/dockerDatabase/portainer/docker.sock:/var/run/docker.sock
restart: always
ports:
- 8051:9000
# 配置卷
volumes:
portainer_data:
driver: local

0
redis/conf/redis.conf

25
redis/docker-compose.yml

@ -0,0 +1,25 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command
version: '3'
services:
# redis服务器
redis:
image: redis:6.2.6
container_name: redis
hostname: redis
restart: always
ports:
- 6379:6379
command: redis-server --requirepass kanglai@2022
volumes:
- redis:/data
- /usr/software/dockerDatabase/redis/redis.conf:/usr/local/etc/redis/redis.conf
# 配置卷
volumes:
redis:
driver: local

96
rocketmq/brokerconf/broker.conf

@ -0,0 +1,96 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 所属集群名字
brokerClusterName=DefaultCluster
# broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a,
# 在 broker-b.properties 使用: broker-b
brokerName=broker-a
# 0 表示 Master,> 0 表示 Slave
brokerId=0
# nameServer地址,分号分割
# namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
# 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:10909> failed
# 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP
brokerIP1=192.168.3.10
# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false
autoCreateTopicEnable=true
# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=10911
# 删除文件时间点,默认凌晨4点
deleteWhen=04
# 文件保留时间,默认48小时
fileReservedTime=120
# commitLog 每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
# ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
# destroyMapedFileIntervalForcibly=120000
# redeleteHangedFileInterval=120000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
# storePathRootDir=/home/ztztdata/rocketmq-all-4.1.0-incubating/store
# commitLog 存储路径
# storePathCommitLog=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/commitlog
# 消费队列存储
# storePathConsumeQueue=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/consumequeue
# 消息索引存储路径
# storePathIndex=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/index
# checkpoint 文件存储路径
# storeCheckpoint=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/checkpoint
# abort 文件存储路径
# abortFile=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/abort
# 限制的消息大小
maxMessageSize=65536
# flushCommitLogLeastPages=4
# flushConsumeQueueLeastPages=2
# flushCommitLogThoroughInterval=10000
# flushConsumeQueueThoroughInterval=60000
# Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole=ASYNC_MASTER
# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
# 发消息线程池数量
# sendMessageThreadPoolNums=128
# 拉消息线程池数量
# pullMessageThreadPoolNums=128

51
rocketmq/docker-compose.yml

@ -0,0 +1,51 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# rocketmq参考:https://rocketmq.apache.org/docs/%E4%BB%8B%E7%BB%8D/03whatis
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command
version: '3'
services:
# rocketmq代理发现注册服务
rmqnamesrv:
image: foxiswho/rocketmq:server
container_name: rmqnamesrv
restart: always
ports:
- 9876:9876
volumes:
- /usr/software/dockerDatabase/rocketmq/namesrv/logs:/opt/logs
- /usr/software/dockerDatabase/rocketmq/namesrv/store:/opt/store
networks:
rmq:
aliases:
- rmqnamesrv
# rocketmq核心消息发送存储代理
rmqbroker:
image: foxiswho/rocketmq:broker
container_name: rmqbroker
restart: always
ports:
- 10909:10909
- 10911:10911
volumes:
- /usr/software/dockerDatabase/rocketmq/namesrv/logs:/opt/logs
- /usr/software/dockerDatabase/rocketmq/namesrv/store:/opt/store
- /usr/software/dockerDatabase/rocketmq/broker/brokerconf/broker.conf:/etc/rocketmq/broker.conf
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPTS: "-Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
command: mqbroker -c /etc/rocketmq/broker.conf
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqbroker
# 局域网网关配置
networks:
rmq:
driver: bridge

15
seata/conf/nacos/README.md

@ -0,0 +1,15 @@
##nacos-config.sh
| 命令 | 描述 | 默认 |
|------|-----------|-------------|
|-h | nacos主机地址 | 127.0.0.1 |
|-p | nacos主机端口 | 8848 |
|-g | nacos分组名称 | public |
|-t | nacos命名空间 | DEFAULT_GROUP |
|-u | nacos账户 | 无 |
|-w | nacos密码 | 无 |
```bash
# nacos导入命令,把config.txt与nacos-config.sh传到服务器注意需要保持同级目录,然后运行下方命令
./nacos-config.sh -h 101.42.231.100 -g SEATA_GROUP -t kicc-seata
```

134
seata/conf/nacos/config.txt

@ -0,0 +1,134 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# 有关配置项的详细信息,请参考:https://seata.io/zh-cn/docs/user/configurations.html
# 客户端与服务端传输方式
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableTmClientBatchSendRequest=false
transport.enableRmClientBatchSendRequest=true
transport.enableTcServerBatchSendResponse=false
transport.rpcRmRequestTimeout=30000
transport.rpcTmRequestTimeout=30000
transport.rpcTcRequestTimeout=30000
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
transport.serialization=seata
transport.compressor=none
# 事务路由规则配置,仅针对客户端
# seata事务组编号,用于TC集群名,很重要,与项目配置文件的tx-service-group对应
service.vgroupMapping.default_tx_group=default
# 默认的群组集群list,仅注册中心为file时使用,使用nacos注册中心不需要写了:https://github.com/seata/seata/issues/3473
service.default.grouplist=127.0.0.1:8091
service.enableDegrade=false
service.disableGlobalTransaction=false
# 事务规则配置,仅针对客户端
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=false
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.rm.sagaJsonParser=fastjson
client.rm.tccActionInterceptorOrder=-2147482648
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
client.tm.interceptorOrder=-2147482648
client.undo.dataValidation=true
client.undo.logSerialization=jackson
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.undo.compress.enable=true
client.undo.compress.type=zip
client.undo.compress.threshold=64k
# 针对于TCC交易模式
tcc.fence.logTableName=tcc_fence_log
tcc.fence.cleanPeriod=1h
# 日志规则配置,用于客户端和服务器
log.exceptionRate=100
# 事务存储配置,file,db,redis为可选配置,推荐db模式
store.mode=db
store.lock.mode=file
store.session.mode=file
# 用于密码加密
# store.publicKey=
# 如果store.mode,store.lock.mode,store.session.mode不等于file可以移除配置块
store.file.dir=file_store/data
store.file.maxBranchSessionSize=16384
store.file.maxGlobalSessionSize=512
store.file.fileWriteBufferCacheSize=16384
store.file.flushDiskMode=async
store.file.sessionReloadReadSize=100
# 如果store.mode为db则需要这些配置,如果store.mode,store.lock.mode,store.session.mode不等于db可以移除配置块
store.db.datasource=druid
# 如果为DB模式需要配置数据库,数据库默认数据库为mysql
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://120.26.168.56:8052/kicc_seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=kanglai@2022
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
# 如果store.mode为redis则需要这些配置,如果store.mode,store.lock.mode,store.session.mode不等于redis可以移除配置块
store.redis.mode=single
store.redis.single.host=127.0.0.1
store.redis.single.port=6379
# store.redis.sentinel.masterName=
# store.redis.sentinel.sentinelHosts=
store.redis.maxConn=10
store.redis.minConn=1
store.redis.maxTotal=100
store.redis.database=0
# store.redis.password=
store.redis.queryLimit=100
# 交易规则配置,只针对服务端
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.distributedLockExpireTime=10000
server.session.branchAsyncQueueSize=5000
server.session.enableBranchAsyncRemove=true
# 关闭metrics统计信息功能,提高性能:https://developer.aliyun.com/article/710333
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

120
seata/conf/nacos/nacos-config.sh

@ -0,0 +1,120 @@
#!/bin/sh
# Copyright 1999-2019 Seata.io Group.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at、
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
while getopts ":h:p:g:t:u:w:" opt
do
case $opt in
h)
host=$OPTARG
;;
p)
port=$OPTARG
;;
g)
group=$OPTARG
;;
t)
tenant=$OPTARG
;;
u)
username=$OPTARG
;;
w)
password=$OPTARG
;;
?)
echo " USAGE OPTION: $0 [-h host] [-p port] [-g group] [-t tenant] [-u username] [-w password] "
exit 1
;;
esac
done
if [ -z ${host} ]; then
host=localhost
fi
if [ -z ${port} ]; then
port=8848
fi
if [ -z ${group} ]; then
group="SEATA_GROUP"
fi
if [ -z ${tenant} ]; then
tenant=""
fi
if [ -z ${username} ]; then
username=""
fi
if [ -z ${password} ]; then
password=""
fi
nacosAddr=$host:$port
contentType="content-type:application/json;charset=UTF-8"
echo "set nacosAddr=$nacosAddr"
echo "set group=$group"
urlencode() {
length="${#1}"
i=0
while [ $length -gt $i ]; do
char="${1:$i:1}"
case $char in
[a-zA-Z0-9.~_-]) printf $char ;;
*) printf '%%%02X' "'$char" ;;
esac
i=`expr $i + 1`
done
}
failCount=0
tempLog=$(mktemp -u)
function addConfig() {
dataId=`urlencode $1`
content=`urlencode $2`
curl -X POST -H "${contentType}" "http://$nacosAddr/nacos/v1/cs/configs?dataId=$dataId&group=$group&content=$content&tenant=$tenant&username=$username&password=$password" >"${tempLog}" 2>/dev/null
if [ -z $(cat "${tempLog}") ]; then
echo " Please check the cluster status. "
exit 1
fi
if [ "$(cat "${tempLog}")" == "true" ]; then
echo "Set $1=$2 successfully "
else
echo "Set $1=$2 failure "
failCount=`expr $failCount + 1`
fi
}
count=0
COMMENT_START="#"
for line in $(cat $(dirname "$PWD")/config.txt | sed s/[[:space:]]//g); do
if [[ "$line" =~ ^"${COMMENT_START}".* ]]; then
continue
fi
count=`expr $count + 1`
key=${line%%=*}
value=${line#*=}
addConfig "${key}" "${value}"
done
echo "========================================================================="
echo " Complete initialization parameters, total-count:$count , failure-count:$failCount "
echo "========================================================================="
if [ ${failCount} -eq 0 ]; then
echo " Init nacos config finished, please start seata-server. "
else
echo " init nacos config fail. "
fi

134
seata/conf/nacos/seataServer.properties

@ -0,0 +1,134 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# 有关配置项的详细信息,请参考:https://seata.io/zh-cn/docs/user/configurations.html
# 客户端与服务端传输方式
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableTmClientBatchSendRequest=false
transport.enableRmClientBatchSendRequest=true
transport.enableTcServerBatchSendResponse=false
transport.rpcRmRequestTimeout=30000
transport.rpcTmRequestTimeout=30000
transport.rpcTcRequestTimeout=30000
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
transport.serialization=seata
transport.compressor=none
# 事务路由规则配置,仅针对客户端
# seata事务组编号,用于TC集群名,很重要,与项目配置文件的tx-service-group对应
service.vgroupMapping.default_tx_group=default
# 默认的群组集群list,仅注册中心为file时使用,使用nacos注册中心不需要写了:https://github.com/seata/seata/issues/3473
service.default.grouplist=127.0.0.1:8091
service.enableDegrade=false
service.disableGlobalTransaction=false
# 事务规则配置,仅针对客户端
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=false
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.rm.sagaJsonParser=fastjson
client.rm.tccActionInterceptorOrder=-2147482648
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
client.tm.interceptorOrder=-2147482648
client.undo.dataValidation=true
client.undo.logSerialization=jackson
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.undo.compress.enable=true
client.undo.compress.type=zip
client.undo.compress.threshold=64k
# 针对于TCC交易模式
tcc.fence.logTableName=tcc_fence_log
tcc.fence.cleanPeriod=1h
# 日志规则配置,用于客户端和服务器
log.exceptionRate=100
# 事务存储配置,file,db,redis为可选配置,推荐db模式
store.mode=db
store.lock.mode=file
store.session.mode=file
# 用于密码加密
# store.publicKey=
# 如果store.mode,store.lock.mode,store.session.mode不等于file可以移除配置块
store.file.dir=file_store/data
store.file.maxBranchSessionSize=16384
store.file.maxGlobalSessionSize=512
store.file.fileWriteBufferCacheSize=16384
store.file.flushDiskMode=async
store.file.sessionReloadReadSize=100
# 如果store.mode为db则需要这些配置,如果store.mode,store.lock.mode,store.session.mode不等于db可以移除配置块
store.db.datasource=druid
# 如果为DB模式需要配置数据库,数据库默认数据库为mysql
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://192.168.3.10:8052/kicc_seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=kanglai@2022
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
# 如果store.mode为redis则需要这些配置,如果store.mode,store.lock.mode,store.session.mode不等于redis可以移除配置块
store.redis.mode=single
store.redis.single.host=127.0.0.1
store.redis.single.port=6379
# store.redis.sentinel.masterName=
# store.redis.sentinel.sentinelHosts=
store.redis.maxConn=10
store.redis.minConn=1
store.redis.maxTotal=100
store.redis.database=0
# store.redis.password=
store.redis.queryLimit=100
# 交易规则配置,只针对服务端
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.distributedLockExpireTime=10000
server.session.branchAsyncQueueSize=5000
server.session.enableBranchAsyncRemove=true
# 关闭metrics统计信息功能,提高性能:https://developer.aliyun.com/article/710333
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

103
seata/conf/registry.conf

@ -0,0 +1,103 @@
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
loadBalance = "RandomLoadBalance"
loadBalanceVirtualNodes = 10
nacos {
application = "seata-server"
serverAddr = "192.168.3.10:8848"
group = "SEATA_GROUP"
namespace = "kicc-seata"
cluster = "default"
# nacos内网使用没配安全权限,可以不写
username = ""
password = ""
}
eureka {
serviceUrl = "http://localhost:8761/eureka"
application = "default"
weight = "1"
}
redis {
serverAddr = "localhost:6379"
db = 0
password = ""
cluster = "default"
timeout = 0
}
zk {
cluster = "default"
serverAddr = "127.0.0.1:2181"
sessionTimeout = 6000
connectTimeout = 2000
username = ""
password = ""
}
consul {
cluster = "default"
serverAddr = "127.0.0.1:8500"
aclToken = ""
}
etcd3 {
cluster = "default"
serverAddr = "http://localhost:2379"
}
sofa {
serverAddr = "127.0.0.1:9603"
application = "default"
region = "DEFAULT_ZONE"
datacenter = "DefaultDataCenter"
cluster = "default"
group = "SEATA_GROUP"
addressWaitTime = "3000"
}
file {
name = "file.conf"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "192.168.3.10:8848"
namespace = "kicc-seata"
group = "SEATA_GROUP"
# nacos内网使用没配安全权限,可以不写
username = ""
password = ""
# 目前nacos文件是拆成多个的,也可以整合成一个,将所有配置配置到这个nacos中的properties
# 但是通过查看客户端源码发现内部不支持dataId这种方式,所以这个配置只对服务端起作用
# 所以不能达到统一的一个效果,没什么用,可以注释调,采用nacos多个文件的形式
# dataId = "seataServer.properties"
}
consul {
serverAddr = "127.0.0.1:8500"
aclToken = ""
}
apollo {
appId = "seata-server"
## apolloConfigService will cover apolloMeta
apolloMeta = "http://192.168.1.204:8801"
apolloConfigService = "http://192.168.1.204:8080"
namespace = "application"
apolloAccesskeySecret = ""
cluster = "seata"
}
zk {
serverAddr = "127.0.0.1:2181"
sessionTimeout = 6000
connectTimeout = 2000
username = ""
password = ""
nodePath = "/seata/seata.properties"
}
etcd3 {
serverAddr = "http://localhost:2379"
}
file {
name = "file.conf"
}
}

35
seata/docker-compose.yml

@ -0,0 +1,35 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command
version: "3"
services:
# seata分布式事务服务器
seata-server:
image: seataio/seata-server:1.4.2
container_name: seata-server
hostname: seata-server
restart: always
networks:
- seata-server
ports:
- 8091:8091
environment:
# https://seata.io/zh-cn/docs/ops/deploy-by-docker.html
# 注册到nacos上的ip。客户端将通过该ip访问seata服务。
# 注意公网ip和内网ip的差异。
- SEATA_IP=192.168.3.10
# 指定seata服务启动端口
- SEATA_PORT=8091
# 存储模式
- STORE_MODE=db
volumes:
- /usr/software/dockerDatabase/seata/config/registry.conf:/seata-server/resources/registry.conf
- /usr/software/dockerDatabase/seata/logs:/root/logs/seata
# 局域网网关配置
networks:
seata-server:
driver: bridge

8
upsource/README.md

@ -0,0 +1,8 @@
```bash
# upsource容器中使用的用户和组不是13001:13001,而是其他,也许是码头工人的用户,需要手动授权,或者写个Dockerfile在里面授权
chmod -R 777 /usr/software/dockerDatabase/upsource/data
chmod -R 777 /usr/software/dockerDatabase/upsource/conf
chmod -R 777 /usr/software/dockerDatabase/upsource/logs
chmod -R 777 /usr/software/dockerDatabase/upsource/backups
```

21
upsource/docker-compose.yml

@ -0,0 +1,21 @@
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台
# VERSION: 1.0.0
# Author: 康来生物科技有限公司-王翔
# 更多信息请参考官网:https://docs.gitea.io/en-us/install-with-docker/
version: '3'
services:
#idea代码审查工具
#docker安装帮助: https://www.jetbrains.com/help/upsource/docker-installation.html#configure
upsource-server:
image: jetbrains/upsource:2020.1.1992
container_name: upsource
hostname: upsource
restart: always
volumes:
- /usr/software/dockerDatabase/upsource/data:/opt/upsource/data
- /usr/software/dockerDatabase/upsource/conf:/opt/upsource/conf
- /usr/software/dockerDatabase/upsource/logs:/opt/upsource/logs
- /usr/software/dockerDatabase/upsource/backups:/opt/upsource/backups
ports:
- 9301:8080

19
zookeeper/docker-compose.yml

@ -0,0 +1,19 @@
# PROJECT: dolphin
# VERSION: 1.0.0
# Author: wangxiang4
# https://hub.docker.com/_/zookeeper
version: "3"
services:
zookeeper:
image: zookeeper:3.4.14
container_name: zookeeper
hostname: zookeeper
restart: always
environment:
- ZOO_MAX_CLIENT_CNXNS=200
volumes:
- /usr/software/dockerDatabase/zookeeper/data:/data
- /usr/software/dockerDatabase/zookeeper/config:/conf
- /usr/software/dockerDatabase/zookeeper/logs:/datalog
ports:
- 2181:2181
Loading…
Cancel
Save