关于本地docker启动xxl-job

之前通过github拉取xxl-job到本地启动,已经验证完了,主要要记住以下几个步骤:

1.拉取代码

GitHub地址:https://github.com/xuxueli/xxl-job

Gitee地址:https://gitee.com/xuxueli0323/xxl-job

2.idea打开,找到tables_xxl_job.sql文件,在mysql库中执行

执行完,会生成以下表:

打开xxl-job-admin模块,在application.properties中进行后台的配置,修改数据源和提示企业邮箱。

其中数据库地址要加上时区属性,否则乱码

举例:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&serverTimezone=UTC

以上是本地正常启动或者通过jar包启动,例如 java -jar xxxx.jar

---------------------------------------------------分割线---------------------------------------------------------------

下面介绍docker启动xxl-job

1.拉取镜像

docker pull xuxueli/xxl-job-admin:2.4.0

2.启动

如果是linux服务,执行命令:

docker run -di \
    -e PARAMS="--spring.datasource.url=jdbc:mysql://ip:端口/xxl_job?useSSL=false&Unicode=true&characterEncoding=UTF-8" \
    -e PARAMS="--spring.datasource.username=root" \
    -e PARAMS="--spring.datasource.password=123456" \
    -e PARAMS="--spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver" \
    -e PARAMS="--xxl.job.accessToken=mq.test" \
    -p 9001:8080 \
    -v /usr/local/src/docker/xxl-job:/data/applogs \
    --name xxl-job \
    --privileged=true \
    xuxueli/xxl-job-admin:2.4.0

Windows版docker执行以下命令:

docker run -di -e PARAMS="--spring.datasource.url=jdbc:mysql://宿主机IP:3307/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false --spring.datasource.username=root --spring.datasource.password=123456 --spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver --xxl.job.accessToken=mq.test" -p 9001:8080 -v /usr/local/src/docker/xxl-job:/data/applogs --name xxl-job --privileged=true xuxueli/xxl-job-admin:2.4.0

下面来聊一下踩的坑:

1.我的环境是windows docker 启动了一个mysql容器 端口3306映射本地3307;启动了xxl-job 容器端口8080映射本地9001;我在docker启动命令中使用的jdbc:mysql:127.0.0.1:3307,xxl-job容器启动了,但是服务启动失败,报错日志:

备注:可以用命令docker logs --since 2m xxl-job 查看容器最近2分钟内的运行日志(xxl-job容器名称)

发现没有连上mysql。

原因是:

参数中,jdbc:mysql://127.0.0.1:3307/xxl_job 中的 127.0.0.1 指向的是 xxl-job 容器本身,而不是宿主机。为了使 xxl-job 容器能够连接到宿主机上运行的 MySQL 服务器,您应该使用宿主机的 IP 地址,而不是 127.0.0.1

修改完成,即可。

注意:

上述启动命令中设置了accessToken,那么我们应用服务配置也要修改,否则是报错。

配置:

如果不改,则启动时会报错:

15:06:41.199 logback [Thread-5] INFO  com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9999
15:06:41.230 logback [xxl-job, executor ExecutorRegistryThread] INFO  c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='xxl-job-executor-sample', registryValue='http://172.19.18.45:9999/'}, registryResult:ReturnT [code=500, msg=The access token is wrong., content=null]

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值