接入nacos

This commit is contained in:
wanjia 2024-09-29 11:26:59 +08:00
parent a7ade9ccb7
commit 650a716810
11 changed files with 311 additions and 76 deletions

2
.gitignore vendored
View File

@ -1,2 +1,4 @@
/target
.idea
/docker/logs
/docker/.env

21
docker/.env.example Normal file
View File

@ -0,0 +1,21 @@
# nacos
NACOS_CONTAINER_NAME=
NACOS_IP=
NACOS_PORT=
NACOS_USERNAME=
NACOS_PASSWORD=
# mysql
MYSQL_CONTAINER_NAME=
MYSQL_IP=
MYSQL_PORT=
MYSQL_DATABASE=
MYSQL_USERNAME=
MYSQL_PASSWORD=
# local port
SOFTBOT_LOCAL_PORT=
# microservice network name
MICROSERVICES_NETWORK_NAME=

View File

@ -1,4 +1,4 @@
FROM openjdk:8-jdk
ADD target/softbot.jar /data/softbot.jar
WORKDIR /data
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS softbot.jar --spring.config.location=/data/config/softbot_application.yml"]
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS softbot.jar $NACOS_OPTS $MYSQL_OPTS --spring.profiles.active=prod"]

View File

@ -7,13 +7,23 @@ services:
context: ../
dockerfile: docker/Dockerfile
volumes:
- ./config/softbot_application.yml:/data/config/softbot_application.yml
- ./logs:/data/logs
external_links:
- ${NACOS_CONTAINER_NAME}
- ${MYSQL_CONTAINER_NAME}
ports:
- "8069:8081"
- "${SOFTBOT_LOCAL_PORT}:8081"
environment:
- TZ=Asia/Shanghai
- NACOS_OPTS=--nacos_ip=${NACOS_IP} --nacos_port=${NACOS_PORT} --nacos_username=${NACOS_USERNAME} --nacos_password=${NACOS_PASSWORD}
- MYSQL_OPTS=--mysql_ip=${MYSQL_IP} --mysql_port=${MYSQL_PORT} --mysql_username=${MYSQL_USERNAME} --mysql_password=${MYSQL_PASSWORD} --mysql_database=${MYSQL_DATABASE}
deploy:
resources:
limits:
memory: 800M
restart: always
restart: always
networks:
microservices_network:
external:
name: ${MICROSERVICES_NETWORK_NAME}

View File

@ -1 +1,5 @@
mvn -f ../pom.xml clean package -DskipTests && cp ../src/main/resources/application.yml ./config/softbot_application.yml && docker-compose -f docker-compose.yml up -d --build --force-recreate
#!/bin/bash
# 编译项目
mvn -f ../pom.xml clean package -DskipTests
# 启动docker-compose
docker-compose -f docker-compose.yml up -d --build --force-recreate

View File

@ -21,6 +21,12 @@
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.1</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>

View File

@ -3,6 +3,7 @@ package com.gitlink.softbot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.retry.annotation.EnableRetry;
import org.springframework.scheduling.annotation.EnableAsync;
@ -10,6 +11,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@MapperScan("com.gitlink.softbot.dao")
@EnableAsync
@EnableRetry
@EnableDiscoveryClient
public class SoftBotApplication {
public static void main(String[] args) {

View File

@ -1,8 +1,25 @@
server:
port: 8080
port: 8081
es-url:
127.0.0.1:9200
spring:
config:
activate:
on-profile: dev
application:
# 应用名称
name: softbot
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
datasource:
username: root
password: 123456 #tonglin0711
@ -45,6 +62,7 @@ spring:
timeout: 10000
password: 123456
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

View File

@ -0,0 +1,81 @@
server:
port: 8081
es-url:
127.0.0.1:9200
spring:
config:
activate:
on-profile: dev
application:
# 应用名称
name: softbot
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: ${nacos_ip}:${nacos_port}
username: ${nacos_username}
password: ${nacos_password}
datasource:
username: ${mysql_username}
password: ${mysql_password}
url: jdbc:mysql://${mysql_ip}:${mysql_port}/${mysql_database}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
driver-class-name: com.mysql.cj.jdbc.Driver
dbcp2:
test-on-borrow: false
test-while-idle: true
time-between-eviction-runs-millis: 3600000
elasticsearch:
rest:
uris: http://127.0.0.1:9200
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
thymeleaf:
prefix: classpath:/templates/
suffix: .html
encoding: UTF-8
redis:
database: 0
host: 101.35.140.79
port: 6379
# password:
# 连接超时时间
timeout: 10000
password: 123456
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:mapper/*.xml
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.gitlink.softbot.entity
configuration:
map-underscore-to-camel-case: true
#showSql
logging:
level:
com:
example:
mapper : debug
elasticsearch:
url: localhost:9200
gitlink:
url: https://testforgeplus.trustie.net
token: eyJraWQiOiJUaEVSLVl3Ukg4TWYwOHM0UnJLUDYzXzZLWmVET2NZckZXcmdzN2VUVWdrIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJHaXRMaW5rIiwiaWF0IjoxNjc1NzYyMDkwLCJqdGkiOiI0MzA1ZDUwZC01ZGRkLTQ0MzUtODMyNS1iZDczYmVhMWMxYjciLCJ1c2VyIjp7ImlkIjpudWxsLCJsb2dpbiI6bnVsbCwibWFpbCI6bnVsbH19.hpHCJeU4Jyz-DM2NBUdB-tQW_E0-tu9H3LoGhsJ7kPHkSsdXJCII0jxhyPb9gwDsgd8SnlRZF8tZDDjnZSoztQ

View File

@ -1,72 +1,10 @@
server:
port: 8081
es-url:
127.0.0.1:9200
spring:
datasource:
username: root
password: 123456 #tonglin0711
url: jdbc:mysql://localhost:3306/testforgeplus?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
driver-class-name: com.mysql.cj.jdbc.Driver
dbcp2:
test-on-borrow: false
test-while-idle: true
time-between-eviction-runs-millis: 3600000
elasticsearch:
rest:
uris: http://127.0.0.1:9200
devtools:
restart:
enabled: true
additional-paths: src/main/java
poll-interval: 3000
quiet-period: 1000
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
thymeleaf:
prefix: classpath:/templates/
suffix: .html
encoding: UTF-8
redis:
database: 0
host: 101.35.140.79
port: 6379
# password:
# 连接超时时间
timeout: 10000
password: 123456
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:mapper/*.xml
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.gitlink.softbot.entity
configuration:
map-underscore-to-camel-case: true
#showSql
logging:
level:
com:
example:
mapper : debug
elasticsearch:
url: localhost:9200
gitlink:
url: https://testforgeplus.trustie.net
token: eyJraWQiOiJUaEVSLVl3Ukg4TWYwOHM0UnJLUDYzXzZLWmVET2NZckZXcmdzN2VUVWdrIiwiYWxnIjoiSFM1MTIifQ.eyJpc3MiOiJHaXRMaW5rIiwiaWF0IjoxNjc1NzYyMDkwLCJqdGkiOiI0MzA1ZDUwZC01ZGRkLTQ0MzUtODMyNS1iZDczYmVhMWMxYjciLCJ1c2VyIjp7ImlkIjpudWxsLCJsb2dpbiI6bnVsbCwibWFpbCI6bnVsbH19.hpHCJeU4Jyz-DM2NBUdB-tQW_E0-tu9H3LoGhsJ7kPHkSsdXJCII0jxhyPb9gwDsgd8SnlRZF8tZDDjnZSoztQ
application:
# 应用名称
name: softbot
profiles:
# 环境配置
active: dev

View File

@ -39,7 +39,7 @@ CREATE TABLE `bot` (
`private_key` text,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `name` (`bot_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=802 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of bot
@ -195,3 +195,156 @@ CREATE TABLE `transfer_bot` (
-- ----------------------------
-- Records of transfer_bot
-- ----------------------------
DROP TABLE IF EXISTS `bot`;
CREATE TABLE `bot` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`bot_name` varchar(255) NOT NULL COMMENT 'bot名称',
`bot_des` longtext COMMENT 'bot描述',
`webhook` varchar(255) NOT NULL COMMENT 'bot回调url',
`is_public` tinyint DEFAULT NULL COMMENT '0:私有1公开',
`logo` varchar(255) DEFAULT NULL COMMENT 'logo',
`state` tinyint DEFAULT NULL COMMENT '0:挂起1工作',
`client_id` varchar(255) DEFAULT NULL COMMENT '客户端id后台生成',
`client_secret` varchar(255) DEFAULT NULL COMMENT '客户端密钥(后台生成)',
`web_url` varchar(255) DEFAULT NULL COMMENT '主页网址',
`category` varchar(255) DEFAULT NULL COMMENT '类型',
`install_num` int DEFAULT '0' COMMENT '下载数量',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`uid` int DEFAULT NULL,
`owner_id` int DEFAULT NULL,
`private_key` text,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`bot_name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- Records of bot
INSERT INTO `bot` VALUES
('783', 'botnameegdret', 'miaoshusd', 'http://localhost:10000', '1', 'asdasdasfdg', '0', 'qwer', 'ert', 'botnameegdret', '疑修管理', '6', '2023-03-07 17:42:13', '2023-03-07 17:42:13', NULL, '84993', NULL),
('791', 'botnameegdretui', 'miaoshusd', 'www.hauhahasd.com', '1', 'asdasdasfdg', '0', 'qwer', 'ert', 'botnameegdretui', '疑修管理', '1', '2023-03-07 17:23:28', '2023-03-06 23:05:28', NULL, '84993', NULL),
('792', 'botnameegdretop', 'miaoshusd', 'www.hauhahasd.com', '0', 'asdasdasfdg', '0', 'qwer', 'ert', 'botnameegdretop', NULL, '0', '2023-03-06 23:05:29', '2023-03-06 23:05:29', NULL, '84993', NULL);
-- Table structure for bot_category
DROP TABLE IF EXISTS `bot_category`;
CREATE TABLE `bot_category` (
`id` int NOT NULL,
`category` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Records of bot_category
INSERT INTO `bot_category` VALUES
('1', '疑修管理'),
('2', '合并请求管理'),
('3', '代码审阅'),
('4', '代码质量'),
('5', '依赖管理'),
('6', '构建'),
('7', '测试'),
('8', '部署'),
('9', '文档管理'),
('10', '其他');
-- Table structure for bot_limit_event
DROP TABLE IF EXISTS `bot_limit_event`;
CREATE TABLE `bot_limit_event` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`bot_id` int NOT NULL COMMENT 'bot的唯一标识',
`read_write_code` tinyint NOT NULL COMMENT '0只读1读写2:无权限',
`read_write_pr` tinyint NOT NULL COMMENT '0只读1读写2:无权限',
`auth_category` tinyint NOT NULL COMMENT '0代码仓库权限1合并请求权限2:无权限',
`event` tinyint NOT NULL COMMENT '0git推送到存储库1创建分支或标签2删除分支或标签3合并请求被打开或重新打开4合并请求被分配5无权限',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;
-- Records of bot_limit_event
INSERT INTO `bot_limit_event` VALUES
('18', '783', '0', '1', '0', '1', '2022-10-05 19:21:53', '2022-10-05 19:21:53'),
('19', '791', '0', '1', '0', '1', '2022-10-07 20:19:22', '2022-10-07 20:19:22'),
('20', '792', '1', '2', '0', '2', '2022-12-29 18:34:26', '2022-12-29 18:34:26'),
('21', '793', '1', '2', '0', '1', '2022-12-29 18:42:26', '2022-12-29 18:42:26'),
('23', '794', '1', '2', '0', '1', '2022-12-29 18:45:54', '2022-12-29 18:45:54'),
('27', '799', '1', '2', '0', '1', '2022-12-29 19:30:05', '2022-12-29 19:30:05'),
('28', '799', '2', '1', '1', '2', '2022-12-29 19:30:05', '2022-12-29 19:30:05');
-- Table structure for install_bot
DROP TABLE IF EXISTS `install_bot`;
CREATE TABLE `install_bot` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`bot_id` int NOT NULL COMMENT 'bot唯一标识',
`installer_id` int NOT NULL COMMENT '安装者唯一标识',
`store_id` int NOT NULL COMMENT '仓库唯一标识',
`state` tinyint NOT NULL COMMENT '0挂起1工作2卸载',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`installer_login` varchar(255) NOT NULL,
`store_repo` varchar(255) NOT NULL,
`webhook_id` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;
-- Table structure for market_bot
DROP TABLE IF EXISTS `market_bot`;
CREATE TABLE `market_bot` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`bot_id` int NOT NULL COMMENT 'bot唯一 标识',
`market_name` varchar(255) DEFAULT NULL COMMENT '上市名称',
`market_desc` varchar(255) DEFAULT NULL COMMENT '上市简介',
`market_intro` longtext COMMENT '详细介绍',
`first_func` varchar(255) NOT NULL COMMENT '主要功能',
`second_func` varchar(255) DEFAULT NULL COMMENT '次要功能',
`webhook` varchar(255) DEFAULT NULL COMMENT '回调url',
`is_receive_ag1` tinyint DEFAULT '0' COMMENT '0:接收协议1不接受收开发者协议',
`is_receive_ag2` tinyint DEFAULT '0' COMMENT '0:接收协议1不接受平台协议',
`market_time` datetime DEFAULT NULL COMMENT '上市时间',
`logo` varchar(255) DEFAULT NULL COMMENT '头像',
`install_num` int DEFAULT '0' COMMENT '安装次数',
`category` varchar(255) DEFAULT NULL COMMENT '类型',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `` (`bot_id`)
) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8;
-- Records of market_bot
INSERT INTO `market_bot` VALUES ('49', '783', 'qwe', 'asd', null, '代码审阅', '疑修管理', 'sad', '1', '1', '2023-03-06 21:07:01', 'sd', '6', 'asd', '2023-03-06 21:07:01', '2023-03-07 17:40:57');
INSERT INTO `market_bot` VALUES ('54', '791', 'asder', 'asd', 'asdasd', '其他', '', 'www.asd.com', '0', '0', '2023-03-06 21:06:58', 'asd', '1', 'xcv', '2023-03-06 21:06:58', '2023-03-07 17:23:28');
DROP TABLE IF EXISTS `register_bot`;
CREATE TABLE `register_bot` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`bot_id` int NOT NULL COMMENT 'bot唯一标识',
`developer_id` int NOT NULL COMMENT 'bot开发者唯一标识',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
`developer_login` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `bot_id` (`bot_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- Records of register_bot
INSERT INTO `register_bot` (id, bot_id, developer_id, create_time, update_time, developer_login) VALUES
(3, 783, 84993, '2023-03-07 09:46:37', '2023-03-07 09:46:37', 'durian'),
(4, 791, 84993, '2023-03-07 09:46:37', '2023-03-07 09:46:37', 'durian'),
(5, 792, 84993, '2023-03-07 09:46:35', '2023-03-07 09:46:35', 'durian');
-- Table structure for `transfer_bot`
DROP TABLE IF EXISTS `transfer_bot`;
CREATE TABLE `transfer_bot` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`bot_id` int NOT NULL COMMENT 'bot唯一标识',
`transfer_from_id` int NOT NULL COMMENT '转让者唯一标识',
`transfer_to_id` int NOT NULL COMMENT '接收者唯一标识',
`is_success` tinyint NOT NULL COMMENT '0:转让失败1转让成功 2:待接收',
`transfer_time` datetime NOT NULL COMMENT '转让时间',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
`from_login` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`to_login` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;