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
这里我的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”