From f2119b2c5210a1fbc839eaf8fe1d126a6bff75ed Mon Sep 17 00:00:00 2001 From: 1ch0 Date: Sat, 3 Dec 2022 08:27:24 +0800 Subject: [PATCH] Feat: add docker-compose --- server/config.yml | 2 +- server/docker-compose.yaml | 33 + .../docker-compose/mysql/init/mayfly-go.sql | 808 ++++++++++++++++++ server/docs/docker-compose/mysql/my.cnf | 11 + 4 files changed, 853 insertions(+), 1 deletion(-) create mode 100644 server/docker-compose.yaml create mode 100644 server/docs/docker-compose/mysql/init/mayfly-go.sql create mode 100644 server/docs/docker-compose/mysql/my.cnf diff --git a/server/config.yml b/server/config.yml index faa41912..a2e21e12 100644 --- a/server/config.yml +++ b/server/config.yml @@ -18,7 +18,7 @@ jwt: aes: key: 1111111111111111 mysql: - host: localhost:3306 + host: mysql:3306 username: root password: 111049 db-name: mayfly-go diff --git a/server/docker-compose.yaml b/server/docker-compose.yaml new file mode 100644 index 00000000..5dff0b1b --- /dev/null +++ b/server/docker-compose.yaml @@ -0,0 +1,33 @@ +version: "3.9" + +services: + mysql: + image: "mysql:5.7" + container_name: mayfly-go-mysql + environment: + MYSQL_ROOT_PASSWORD: 111049 + MYSQL_DATABASE: mayfly-go + TZ: Asia/Shanghai + volumes: + - ./docs/docker-compose/mysql/data/mydir:/mydir + - ./docs/docker-compose/mysql/data/datadir:/var/lib/mysql + # 在宿主机编写 /apps/mysql/conf/my.cnf + - ./docs/docker-compose/mysql/my.cnf:/etc/my.cnf + # 数据库还原目录 可将需要还原的sql文件放在这里 + - ./docs/docker-compose/mysql/init:/docker-entrypoint-initdb.d + restart: always + + server: + image: mayfly-go:v1.3.0 + build: + context: . + dockerfile: Dockerfile + container_name: mayfly-go-server + ports: + - "8888:8888" + environment: + TZ: Asia/Shanghai + WAIT_HOSTS: mysql:3306 + depends_on: + - mysql + restart: always diff --git a/server/docs/docker-compose/mysql/init/mayfly-go.sql b/server/docs/docker-compose/mysql/init/mayfly-go.sql new file mode 100644 index 00000000..983c53a2 --- /dev/null +++ b/server/docs/docker-compose/mysql/init/mayfly-go.sql @@ -0,0 +1,808 @@ +/* + Navicat Premium Data Transfer + + Source Server Type : MySQL + Source Server Version : 50730 + Source Schema : mayfly-go + + Target Server Type : MySQL + Target Server Version : 50730 + File Encoding : 65001 + + Date: 18/11/2021 14:33:55 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for t_db +-- ---------------------------- +DROP TABLE IF EXISTS `t_db`; +CREATE TABLE `t_db` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据库实例名称', + `host` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `port` int(8) NOT NULL, + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '数据库实例类型(mysql...)', + `database` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据库,空格分割多个数据库', + `params` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '其他连接参数', + `network` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `enable_ssh_tunnel` tinyint(2) DEFAULT NULL COMMENT '是否启用ssh隧道', + `ssh_tunnel_machine_id` bigint(20) DEFAULT NULL COMMENT 'ssh隧道的机器id', + `remark` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '备注,描述等', + `tag_id` bigint(20) DEFAULT NULL COMMENT '标签id', + `tag_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '标签路径', + `create_time` datetime DEFAULT NULL, + `creator_id` bigint(20) DEFAULT NULL, + `creator` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `update_time` datetime DEFAULT NULL, + `modifier_id` bigint(20) DEFAULT NULL, + `modifier` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_path` (`tag_path`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='数据库资源信息表'; + +-- ---------------------------- +-- Records of t_db +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for t_db_sql +-- ---------------------------- +DROP TABLE IF EXISTS `t_db_sql`; +CREATE TABLE `t_db_sql` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `db_id` bigint(20) NOT NULL COMMENT '数据库实例id', + `db` varchar(125) COLLATE utf8mb4_bin NOT NULL COMMENT '数据库', + `name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'sql模板名', + `sql` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin, + `type` tinyint(8) NOT NULL, + `creator_id` bigint(20) NOT NULL, + `creator` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `create_time` datetime NOT NULL, + `update_time` datetime NOT NULL, + `modifier_id` bigint(20) DEFAULT NULL, + `modifier` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='数据库sql信息'; + +-- ---------------------------- +-- Records of t_db_sql +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for t_db_sql_exec +-- ---------------------------- +DROP TABLE IF EXISTS `t_db_sql_exec`; +CREATE TABLE `t_db_sql_exec` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `db_id` bigint(20) NOT NULL COMMENT '数据库id', + `db` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '数据库', + `table` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '表名', + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'sql类型', + `sql` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '执行sql', + `old_value` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '操作前旧值', + `remark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '备注', + `create_time` datetime NOT NULL, + `creator` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `creator_id` bigint(20) NOT NULL, + `update_time` datetime NOT NULL, + `modifier` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `modifier_id` bigint(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='数据库sql执行记录表'; + +-- ---------------------------- +-- Records of t_db_sql_exec +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for t_machine +-- ---------------------------- +DROP TABLE IF EXISTS `t_machine`; +CREATE TABLE `t_machine` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `port` int(12) NOT NULL, + `username` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `auth_method` tinyint(2) DEFAULT NULL COMMENT '1.密码登录2.publickey登录', + `password` varchar(3200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `enable_ssh_tunnel` tinyint(2) DEFAULT NULL COMMENT '是否启用ssh隧道', + `ssh_tunnel_machine_id` bigint(20) DEFAULT NULL COMMENT 'ssh隧道的机器id', + `enable_recorder` tinyint(2) DEFAULT NULL COMMENT '是否启用终端回放记录', + `status` tinyint(2) NOT NULL COMMENT '状态: 1:启用; -1:禁用', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `tag_id` bigint(20) DEFAULT NULL COMMENT '标签id', + `tag_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '标签路径', + `need_monitor` tinyint(2) DEFAULT NULL, + `create_time` datetime NOT NULL, + `creator` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `creator_id` bigint(32) DEFAULT NULL, + `update_time` datetime NOT NULL, + `modifier` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `modifier_id` bigint(32) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_path` (`tag_path`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='机器信息'; + +-- ---------------------------- +-- Records of t_machine +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for t_machine_file +-- ---------------------------- +DROP TABLE IF EXISTS `t_machine_file`; +CREATE TABLE `t_machine_file` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '机器文件配置(linux一切皆文件,故也可以表示目录)', + `machine_id` bigint(20) NOT NULL, + `name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `path` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `type` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '1:目录;2:文件', + `creator_id` bigint(20) unsigned DEFAULT NULL, + `creator` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `modifier_id` bigint(20) unsigned DEFAULT NULL, + `modifier` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `create_time` datetime NOT NULL, + `update_time` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='机器文件'; + +-- ---------------------------- +-- Records of t_machine_file +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for t_machine_monitor +-- ---------------------------- +DROP TABLE IF EXISTS `t_machine_monitor`; +CREATE TABLE `t_machine_monitor` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `machine_id` bigint(20) unsigned NOT NULL COMMENT '机器id', + `cpu_rate` float(255,2) DEFAULT NULL, + `mem_rate` float(255,2) DEFAULT NULL, + `sys_load` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `create_time` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- ---------------------------- +-- Records of t_machine_monitor +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for t_machine_script +-- ---------------------------- +DROP TABLE IF EXISTS `t_machine_script`; +CREATE TABLE `t_machine_script` ( + `id` bigint(64) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '脚本名', + `machine_id` bigint(64) NOT NULL COMMENT '机器id[0:公共]', + `script` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '脚本内容', + `params` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '脚本入参', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '脚本描述', + `type` tinyint(8) DEFAULT NULL COMMENT '脚本类型[1: 有结果;2:无结果;3:实时交互]', + `creator_id` bigint(20) DEFAULT NULL, + `creator` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `modifier_id` bigint(20) DEFAULT NULL, + `modifier` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `create_time` datetime DEFAULT NULL, + `update_time` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='机器脚本'; + +-- ---------------------------- +-- Records of t_machine_script +-- ---------------------------- +BEGIN; +INSERT INTO `t_machine_script` VALUES (1, 'sys_info', 9999999, '# 获取系统cpu信息\nfunction get_cpu_info() {\n Physical_CPUs=$(grep \"physical id\" /proc/cpuinfo | sort | uniq | wc -l)\n Virt_CPUs=$(grep \"processor\" /proc/cpuinfo | wc -l)\n CPU_Kernels=$(grep \"cores\" /proc/cpuinfo | uniq | awk -F \': \' \'{print $2}\')\n CPU_Type=$(grep \"model name\" /proc/cpuinfo | awk -F \': \' \'{print $2}\' | sort | uniq)\n CPU_Arch=$(uname -m)\n echo -e \'\\n-------------------------- CPU信息 --------------------------\'\n cat <