From e90c421cab918da21aafdfbafc4d332c4b7eb970 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Sat, 16 Sep 2023 15:54:06 +0800 Subject: [PATCH] init --- .gitignore | 22 +++ README.md | 166 ++++++++++++++++++ cloudreve/docker-compose.yml | 16 ++ gitea/docker-compose.yml | 33 ++++ keycloak/docker-compose.yml | 61 +++++++ kkFileView/docker-compose.yml | 25 +++ mysql/conf/my.cnf | 37 ++++ mysql/docker-compose.yml | 29 +++ nacos/.env.development | 10 ++ nacos/.env.production | 10 ++ nacos/README.md | 17 ++ nexus/docker-compose.yml | 21 +++ nginx/Dockerfile | 9 + nginx/default.conf | 36 ++++ nginx/docker-compose.yaml | 16 ++ nginx/secret/139.9.72.189/ca.pem | 33 ++++ nginx/secret/139.9.72.189/cert.pem | 31 ++++ .../secret/139.9.72.189/docker-ssl-server.sh | 42 +++++ nginx/secret/139.9.72.189/docker-ssl.sh | 42 +++++ nginx/secret/139.9.72.189/key.pem | 51 ++++++ nginx/secret/139.9.72.189/server-cert.pem | 32 ++++ nginx/secret/139.9.72.189/server-key.pem | 51 ++++++ oracle/docker-compose.yml | 22 +++ portainer/docker-compose.yml | 24 +++ redis/conf/redis.conf | 0 redis/docker-compose.yml | 25 +++ rocketmq/brokerconf/broker.conf | 96 ++++++++++ rocketmq/docker-compose.yml | 51 ++++++ seata/conf/nacos/README.md | 15 ++ seata/conf/nacos/config.txt | 134 ++++++++++++++ seata/conf/nacos/nacos-config.sh | 120 +++++++++++++ seata/conf/nacos/seataServer.properties | 134 ++++++++++++++ seata/conf/registry.conf | 103 +++++++++++ seata/docker-compose.yml | 35 ++++ upsource/README.md | 8 + upsource/docker-compose.yml | 21 +++ zookeeper/docker-compose.yml | 19 ++ 37 files changed, 1597 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 cloudreve/docker-compose.yml create mode 100644 gitea/docker-compose.yml create mode 100644 keycloak/docker-compose.yml create mode 100644 kkFileView/docker-compose.yml create mode 100644 mysql/conf/my.cnf create mode 100644 mysql/docker-compose.yml create mode 100644 nacos/.env.development create mode 100644 nacos/.env.production create mode 100644 nacos/README.md create mode 100644 nexus/docker-compose.yml create mode 100644 nginx/Dockerfile create mode 100644 nginx/default.conf create mode 100644 nginx/docker-compose.yaml create mode 100644 nginx/secret/139.9.72.189/ca.pem create mode 100644 nginx/secret/139.9.72.189/cert.pem create mode 100755 nginx/secret/139.9.72.189/docker-ssl-server.sh create mode 100755 nginx/secret/139.9.72.189/docker-ssl.sh create mode 100644 nginx/secret/139.9.72.189/key.pem create mode 100644 nginx/secret/139.9.72.189/server-cert.pem create mode 100644 nginx/secret/139.9.72.189/server-key.pem create mode 100644 oracle/docker-compose.yml create mode 100644 portainer/docker-compose.yml create mode 100644 redis/conf/redis.conf create mode 100644 redis/docker-compose.yml create mode 100644 rocketmq/brokerconf/broker.conf create mode 100644 rocketmq/docker-compose.yml create mode 100644 seata/conf/nacos/README.md create mode 100644 seata/conf/nacos/config.txt create mode 100644 seata/conf/nacos/nacos-config.sh create mode 100644 seata/conf/nacos/seataServer.properties create mode 100644 seata/conf/registry.conf create mode 100644 seata/docker-compose.yml create mode 100644 upsource/README.md create mode 100644 upsource/docker-compose.yml create mode 100644 zookeeper/docker-compose.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bec6be0 --- /dev/null +++ b/.gitignore @@ -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/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..2246ff0 --- /dev/null +++ b/README.md @@ -0,0 +1,166 @@ +

+ +
+
+

+ +

一个快速开发软件的平台

+ +

+ Website • + Documentation +

+ +
+ + + + + + + + + +
+ +## 🐬 介绍 +海豚生态计划-打造一个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 + +## 黑客节 +加入[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) 的开源软件 。 + diff --git a/cloudreve/docker-compose.yml b/cloudreve/docker-compose.yml new file mode 100644 index 0000000..be2dcff --- /dev/null +++ b/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 diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..e544c5d --- /dev/null +++ b/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 diff --git a/keycloak/docker-compose.yml b/keycloak/docker-compose.yml new file mode 100644 index 0000000..d9a7a41 --- /dev/null +++ b/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: {} diff --git a/kkFileView/docker-compose.yml b/kkFileView/docker-compose.yml new file mode 100644 index 0000000..357cc56 --- /dev/null +++ b/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 diff --git a/mysql/conf/my.cnf b/mysql/conf/my.cnf new file mode 100644 index 0000000..d9e6f00 --- /dev/null +++ b/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 diff --git a/mysql/docker-compose.yml b/mysql/docker-compose.yml new file mode 100644 index 0000000..106ad33 --- /dev/null +++ b/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 diff --git a/nacos/.env.development b/nacos/.env.development new file mode 100644 index 0000000..e3e66de --- /dev/null +++ b/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 diff --git a/nacos/.env.production b/nacos/.env.production new file mode 100644 index 0000000..16be146 --- /dev/null +++ b/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 diff --git a/nacos/README.md b/nacos/README.md new file mode 100644 index 0000000..2a05ba0 --- /dev/null +++ b/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 +``` diff --git a/nexus/docker-compose.yml b/nexus/docker-compose.yml new file mode 100644 index 0000000..35a3c0a --- /dev/null +++ b/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: {} diff --git a/nginx/Dockerfile b/nginx/Dockerfile new file mode 100644 index 0000000..41b2418 --- /dev/null +++ b/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' diff --git a/nginx/default.conf b/nginx/default.conf new file mode 100644 index 0000000..24b5af4 --- /dev/null +++ b/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; + } +} diff --git a/nginx/docker-compose.yaml b/nginx/docker-compose.yaml new file mode 100644 index 0000000..9a7ac32 --- /dev/null +++ b/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 diff --git a/nginx/secret/139.9.72.189/ca.pem b/nginx/secret/139.9.72.189/ca.pem new file mode 100644 index 0000000..41f752c --- /dev/null +++ b/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----- diff --git a/nginx/secret/139.9.72.189/cert.pem b/nginx/secret/139.9.72.189/cert.pem new file mode 100644 index 0000000..21b9ff7 --- /dev/null +++ b/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----- diff --git a/nginx/secret/139.9.72.189/docker-ssl-server.sh b/nginx/secret/139.9.72.189/docker-ssl-server.sh new file mode 100755 index 0000000..ccea70e --- /dev/null +++ b/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 "生成文件完成" +###生成结束### diff --git a/nginx/secret/139.9.72.189/docker-ssl.sh b/nginx/secret/139.9.72.189/docker-ssl.sh new file mode 100755 index 0000000..e11b635 --- /dev/null +++ b/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 "生成文件完成" +###生成结束### diff --git a/nginx/secret/139.9.72.189/key.pem b/nginx/secret/139.9.72.189/key.pem new file mode 100644 index 0000000..1c2fb47 --- /dev/null +++ b/nginx/secret/139.9.72.189/key.pem @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/nginx/secret/139.9.72.189/server-cert.pem b/nginx/secret/139.9.72.189/server-cert.pem new file mode 100644 index 0000000..2103084 --- /dev/null +++ b/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----- diff --git a/nginx/secret/139.9.72.189/server-key.pem b/nginx/secret/139.9.72.189/server-key.pem new file mode 100644 index 0000000..77ea195 --- /dev/null +++ b/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----- diff --git a/oracle/docker-compose.yml b/oracle/docker-compose.yml new file mode 100644 index 0000000..dbdeb0b --- /dev/null +++ b/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 diff --git a/portainer/docker-compose.yml b/portainer/docker-compose.yml new file mode 100644 index 0000000..4da7f75 --- /dev/null +++ b/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 diff --git a/redis/conf/redis.conf b/redis/conf/redis.conf new file mode 100644 index 0000000..e69de29 diff --git a/redis/docker-compose.yml b/redis/docker-compose.yml new file mode 100644 index 0000000..7bae44b --- /dev/null +++ b/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 diff --git a/rocketmq/brokerconf/broker.conf b/rocketmq/brokerconf/broker.conf new file mode 100644 index 0000000..9ba6283 --- /dev/null +++ b/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 diff --git a/rocketmq/docker-compose.yml b/rocketmq/docker-compose.yml new file mode 100644 index 0000000..3327c2e --- /dev/null +++ b/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 diff --git a/seata/conf/nacos/README.md b/seata/conf/nacos/README.md new file mode 100644 index 0000000..8dafe37 --- /dev/null +++ b/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 +``` diff --git a/seata/conf/nacos/config.txt b/seata/conf/nacos/config.txt new file mode 100644 index 0000000..b2e7b1c --- /dev/null +++ b/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 diff --git a/seata/conf/nacos/nacos-config.sh b/seata/conf/nacos/nacos-config.sh new file mode 100644 index 0000000..e1704e0 --- /dev/null +++ b/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 diff --git a/seata/conf/nacos/seataServer.properties b/seata/conf/nacos/seataServer.properties new file mode 100644 index 0000000..2b9c279 --- /dev/null +++ b/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 diff --git a/seata/conf/registry.conf b/seata/conf/registry.conf new file mode 100644 index 0000000..749416c --- /dev/null +++ b/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" + } +} diff --git a/seata/docker-compose.yml b/seata/docker-compose.yml new file mode 100644 index 0000000..c762281 --- /dev/null +++ b/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 diff --git a/upsource/README.md b/upsource/README.md new file mode 100644 index 0000000..6ed7f77 --- /dev/null +++ b/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 +``` diff --git a/upsource/docker-compose.yml b/upsource/docker-compose.yml new file mode 100644 index 0000000..adc6b5a --- /dev/null +++ b/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 diff --git a/zookeeper/docker-compose.yml b/zookeeper/docker-compose.yml new file mode 100644 index 0000000..fbd5723 --- /dev/null +++ b/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