最近在Docker上安装xxl-job,今天终于安装成功,在这个过程中出现不同程度的问题,今天把安装个人的安装步骤记录来说一下:
1、安装镜像
// Docker地址:https://hub.docker.com/r/xuxueli/xxl-job-admin/ (建议指定版本号)
docker pull xuxueli/xxl-job-admin:2.3.0
2、执行数据库文件
2、创建容器
正常情况下,mysql的账号和密码如果和xxl-job上面的密码是一样的话,直接使用官方文档命令行即可:
docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:{指定版本}
但是如果mysql容器账号密码,名称如果不一致的话,就需要根据自己的情况来定,如下:
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root" -p 8088:8080 -v /tmp:/data/applogs --name xxl-job-admin -d --link root:mysql xuxueli/xxl-job-admin:2.3.0
这个有三个地方需要注意:
1、–link root:mysql 这个是代表链接的mysql容器,前面的root指的是mysql容器的名称(–name=root),后面为指定mysql容器在link下的别名
--link <name or id>:alias其中,name和id是源容器的name和id,alias是源容器在link下的别名。关于link的用法和含义,可以参考下这篇文章:https://www.jianshu.com/p/21d66ca6115e
这里我的mysql容器名称为root,所以对应的就是 --link root:mysql,root对应的是各位安装的容器名称
2、spring.datasource.url由jdbc:mysql://127.0.0.1:3306换成了jdbc:mysql://mysql:3306,其中jdbc:mysql://后面跟的这个mysql是mysql容器在此容器映射的别名,通过这个别名就可以找到mysql容器
至此我们再试一下,发现ok了。
关于其他的字段,可以参考官方文档进行设置官方文档!
3、其实上面已经配置完成,但是上面配置完成有可能在执行任务的时候出现下面这个错误
这个错误是因为在docker创建容器的时候没有设置AccessToken,但是在Nacos里面设置了,导致两个AccessToken不一致导致的。
为了和上图保持一致,我们需要在命令行里面增加一句--xxl.job.accessToken=default_token即可。
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=root --xxl.job.accessToken=default_token" -p 8088:8080 -v /tmp:/data/applogs --name xxl-job-admin -d --link root:mysql xuxueli/xxl-job-admin:2.3.0
然后可以通过http://127.0.0.1:8088/xxl-job-admin就可以测试是否可以正常打开任务调度中心页面
这个就是我安装xxl-job踩过的坑