Docker部署xxl-job

官方文档:https://www.xuxueli.com/xxl-job/#《分布式任务调度平台XXL-JOB》
参考文档:https://www.jianshu.com/p/c47a405e98c4

安装

正常情况下,mysql的账号和密码如果和xxl-job上面的密码是一样的话,直接使用官方文档命令行即可:

docker run -p 8089:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:{指定版本}

但是如果mysql容器账号密码,名称如果不一致的话,就需要根据自己的情况来定,如下:

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://mysqlserver:3306/xxl_job?useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root" -p 8089:8080 -v /mydata/services/xxl-job/logs:/data/applogs --name xxl-job-admin -d --link mysql:mysqlserver xuxueli/xxl-job-admin:2.4.0

这个有三个地方需要注意:

1、–link mysql:mysqlserver 这个是代表链接的mysql容器,前面的mysql指的是mysql容器的名称(–name=mysql),后面为指定mysqlserver容器在link下的别名

--link :alias其中,name和id是源容器的name和id,alias是源容器在link下的别名。关于link的用法和含义,可以参考下这篇文章:https://www.jianshu.com/p/21d66ca6115e
这里我的mysql容器名称为mysql,所以对应的就是 --link mysql:mysqlserver,mysql对应的是各位安装的容器名称

2、spring.datasource.url由jdbc:mysql://127.0.0.1:3306换成了jdbc:mysql://mysqlserver:3306,其中jdbc:mysql://后面跟的这个mysqlserver是mysql容器在此容器映射的别名,通过这个别名就可以找到mysql容器

3、其实上面已经配置完成,但是上面配置完成有可能在执行任务的时候出现下面这个错误

这个错误是因为在docker创建容器的时候没有设置AccessToken,但是在Nacos里面设置了,导致两个AccessToken不一致导致的。

为了和上图保持一致,我们需要在命令行里面增加一句--xxl.job.accessToken=default_token即可。

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://mysqlserver:3306/xxl_job?useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root --xxl.job.accessToken=default_token" -p 8189:8080 -v /mydata/services/xxl-job/logs:/data/applogs --name xxl-job-admin -d --link root:mysql xuxueli/xxl-job-admin:2.4.0

然后可以通过http://127.0.0.1:8089/xxl-job-admin就可以测试是否可以正常打开任务调度中心页面,默认登录账号 “admin/123456”

posted @ 2024-04-08 14:38  fortuneju  阅读(168)  评论(0编辑  收藏  举报