苏醒wordpress下载,常州百度seo,深圳app开发价格,个人博客网站取名一、背景
xxl-job-admin依赖mysql数据库#xff0c;且需执行初始化脚本#xff0c;包括ddl和dml语句。 具体的步骤总结如下#xff1a;
1、新建数据库xxl_job2、创建mysql表table3、执行dml语句#xff0c;包括新建admin用户及密码#xff0c;创建执行器和任务。
毫无疑…一、背景
xxl-job-admin依赖mysql数据库且需执行初始化脚本包括ddl和dml语句。 具体的步骤总结如下
1、新建数据库xxl_job2、创建mysql表table3、执行dml语句包括新建admin用户及密码创建执行器和任务。
毫无疑问人工每次去操作这些不仅耗费人力和时间还容易出错。
所以本文试着基于mysql官方镜像制作一个属于自己的数据库镜像。
使用xxl-job的版本是2.2.0下文所做的脚本都是基于该版本。
二、制作自己的镜像 在制作docker镜像前你需要准备好Dockerfile和init.sql 1、Dockerfile
# 使用官方 MySQL 5.7 镜像作为基础镜像
FROM mysql:5.7# 设置环境变量用于 MySQL 配置
ENV MYSQL_ROOT_PASSWORD123456# 将初始化 SQL 脚本文件复制到容器中
COPY init.sql /docker-entrypoint-initdb.d/# 暴露 MySQL 默认端口
EXPOSE 33062、sql脚本init.sql
CREATE database if NOT EXISTS xxl_job default character set utf8mb4 collate utf8mb4_unicode_ci;
use xxl_job;SET NAMES utf8mb4;CREATE TABLE xxl_job_info (id int(11) NOT NULL AUTO_INCREMENT,job_group int(11) NOT NULL COMMENT 执行器主键ID,job_cron varchar(128) NOT NULL COMMENT 任务执行CRON,job_desc varchar(255) NOT NULL,add_time datetime DEFAULT NULL,update_time datetime DEFAULT NULL,author varchar(64) DEFAULT NULL COMMENT 作者,alarm_email varchar(255) DEFAULT NULL COMMENT 报警邮件,executor_route_strategy varchar(50) DEFAULT NULL COMMENT 执行器路由策略,executor_handler varchar(255) DEFAULT NULL COMMENT 执行器任务handler,executor_param varchar(512) DEFAULT NULL COMMENT 执行器任务参数,executor_block_strategy varchar(50) DEFAULT NULL COMMENT 阻塞处理策略,executor_timeout int(11) NOT NULL DEFAULT 0 COMMENT 任务执行超时时间单位秒,executor_fail_retry_count int(11) NOT NULL DEFAULT 0 COMMENT 失败重试次数,glue_type varchar(50) NOT NULL COMMENT GLUE类型,glue_source mediumtext DEFAULT NULL COMMENT GLUE源代码,glue_remark varchar(128) DEFAULT NULL COMMENT GLUE备注,glue_updatetime datetime DEFAULT NULL COMMENT GLUE更新时间,child_jobid varchar(255) DEFAULT NULL COMMENT 子任务ID多个逗号分隔,trigger_status tinyint(4) NOT NULL DEFAULT 0 COMMENT 调度状态0-停止1-运行,trigger_last_time bigint(13) NOT NULL DEFAULT 0 COMMENT 上次调度时间,trigger_next_time bigint(13) NOT NULL DEFAULT 0 COMMENT 下次调度时间,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_log (id bigint(20) NOT NULL AUTO_INCREMENT,job_group int(11) NOT NULL COMMENT 执行器主键ID,job_id int(11) NOT NULL COMMENT 任务主键ID,executor_address varchar(255) DEFAULT NULL COMMENT 执行器地址本次执行的地址,executor_handler varchar(255) DEFAULT NULL COMMENT 执行器任务handler,executor_param varchar(512) DEFAULT NULL COMMENT 执行器任务参数,executor_sharding_param varchar(20) DEFAULT NULL COMMENT 执行器任务分片参数格式如 1/2,executor_fail_retry_count int(11) NOT NULL DEFAULT 0 COMMENT 失败重试次数,trigger_time datetime DEFAULT NULL COMMENT 调度-时间,trigger_code int(11) NOT NULL COMMENT 调度-结果,trigger_msg text DEFAULT NULL COMMENT 调度-日志,handle_time datetime DEFAULT NULL COMMENT 执行-时间,handle_code int(11) NOT NULL COMMENT 执行-状态,handle_msg text DEFAULT NULL COMMENT 执行-日志,alarm_status tinyint(4) NOT NULL DEFAULT 0 COMMENT 告警状态0-默认、1-无需告警、2-告警成功、3-告警失败,PRIMARY KEY (id),KEY I_trigger_time (trigger_time),KEY I_handle_code (handle_code)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_log_report (id int(11) NOT NULL AUTO_INCREMENT,trigger_day datetime DEFAULT NULL COMMENT 调度-时间,running_count int(11) NOT NULL DEFAULT 0 COMMENT 运行中-日志数量,suc_count int(11) NOT NULL DEFAULT 0 COMMENT 执行成功-日志数量,fail_count int(11) NOT NULL DEFAULT 0 COMMENT 执行失败-日志数量,PRIMARY KEY (id),UNIQUE KEY i_trigger_day (trigger_day) USING BTREE
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_logglue (id int(11) NOT NULL AUTO_INCREMENT,job_id int(11) NOT NULL COMMENT 任务主键ID,glue_type varchar(50) DEFAULT NULL COMMENT GLUE类型,glue_source mediumtext DEFAULT NULL COMMENT GLUE源代码,glue_remark varchar(128) NOT NULL COMMENT GLUE备注,add_time datetime DEFAULT NULL,update_time datetime DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_registry (id int(11) NOT NULL AUTO_INCREMENT,registry_group varchar(50) NOT NULL,registry_key varchar(255) NOT NULL,registry_value varchar(255) NOT NULL,update_time datetime DEFAULT NULL,PRIMARY KEY (id),KEY i_g_k_v (registry_group,registry_key,registry_value)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_group (id int(11) NOT NULL AUTO_INCREMENT,app_name varchar(64) NOT NULL COMMENT 执行器AppName,title varchar(12) NOT NULL COMMENT 执行器名称,address_type tinyint(4) NOT NULL DEFAULT 0 COMMENT 执行器地址类型0自动注册、1手动录入,address_list varchar(512) DEFAULT NULL COMMENT 执行器地址列表多地址逗号分隔,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_user (id int(11) NOT NULL AUTO_INCREMENT,username varchar(50) NOT NULL COMMENT 账号,password varchar(50) NOT NULL COMMENT 密码,role tinyint(4) NOT NULL COMMENT 角色0-普通用户、1-管理员,permission varchar(255) DEFAULT NULL COMMENT 权限执行器ID列表多个逗号分割,PRIMARY KEY (id),UNIQUE KEY i_username (username) USING BTREE
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_lock (lock_name varchar(50) NOT NULL COMMENT 锁名称,PRIMARY KEY (lock_name)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;INSERT INTO xxl_job_group (id,app_name,title,address_type,address_list)
VALUES (1,user-service,用户服务,0, NULL);// 注意字段 alarm_email 赋空值而非null
INSERT INTO xxl_job_info (job_group,job_cron,job_desc,add_time,update_time,author,alarm_email,executor_route_strategy,executor_handler,executor_param,executor_block_strategy,executor_timeout,executor_fail_retry_count,glue_type,glue_source,glue_remark,glue_updatetime,child_jobid,trigger_status,trigger_last_time,trigger_next_time)
VALUES (1,0 0 1 * * ?,定时整理工作,now(),now(),admin,,ROUND,autoRemoveEmptyRoom,,SERIAL_EXECUTION,0,0,BEAN,,GLUE代码初始化,2022-08-08 11:01:23,,1,1692032400000,1692118800000);// 注意字段 permission 赋空值而非null
INSERT INTO xxl_job_user(id, username, password, role, permission) VALUES (1, admin, e10adc3949ba59abbe56e057f20f883e, 1, );INSERT INTO xxl_job_lock ( lock_name) VALUES ( schedule_lock);3、构建及推送镜像
docker build -t xxx/xx-job-mysql:2.2.0-20230824 .docker tag xxx/xx-job-mysql:2.2.0-20230824 192.168.5.6:8086/xxx/xx-job-mysql:2.2.0-20230824docker push 192.168.5.6:8086/xxx/xx-job-mysql:2.2.0-20230824三、测试镜像
1、执行容器 docker run -it --name xx-job-mysql -e MYSQL_ROOT_PASSWORD123456 -p 3308:3306 xxx/xx-job-mysql:2.2.0-20230824 可以看到它启动后会执行/docker-entrypoint-initdb.d/init.sql 最后msyql启动成功 2、连接mysql 连接地址是 mysql -h 192.168.828 -u root -p123456 3、在xxl-job-admin查看 新增的用户admin 创建执行器 创建任务
四、docker-compose部署
如果你是使用docker-compose部署这里也贴出来
version: 3
services:mysql:image: 192.168.5.6:8086/xxx/xx-job-mysql:2.2.0-20230824container_name: mysqlrestart: alwaysports:- 3308:3306volumes:- ./mysql/data:/var/lib/mysql- ./mysql/config:/etc/mysql/conf.d- /etc/localtime:/etc/localtimeenvironment:MYSQL_ROOT_PASSWORD: 123456TIME_ZONE: Asia/Shanghai这里我们做了volume持久化其实对于xxl-job可以不用做data数据持久。但是你搭建一个数据库可能不仅仅是适用于xxl-job。