一、背景
今天想把xxl-job-admin跑在容器中,然后在部署的过程中踩了一些坑,特此记录
因为xxl-job-admin需要连接数据库,而我本机的mysql是部署在docker容器中,我以为只要将xxl-job-admin按正常容器化部署就可以访问了,结果在实施过程中遇到了一些坑,如果你在其中一个容器访问另一个容器中的mysql遇到一些报错的情况,你可以参考我这篇文章,看有没有参考性
如果对mysql容器化部署还不熟的同学请先看我这篇文章
我部署在容器中的mysql访问地址为:localhost:3306
首先mysql服务访问正常,通过客户端可以正常访问
二、部署xxl-job-admin
首先参照官方文档进行部署,Docker 镜像方式搭建调度中心
大致步骤如下(官网截图):
直接使用下面带参数的形式启动,然后访问http://localhost:8080/xxl-job-admin
,发现不通
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.0
查看一下日志,发现有报错
docker ps -l : 查询出容器id
docker logs --since 2m fba1cd734f5a 查看容器最近2分钟内的运行日志
yinchendong@Yinchds-Macbook-Pro ~ % docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fba1cd734f5a xuxueli/xxl-job-admin:2.3.0 "sh -c 'java -jar $J…" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp xxl-job-admin
yinchendong@Yinchds-Macbook-Pro ~ % docker logs -t -f --tail 200f fba1cd734f5a
2021-10-25T08:05:09.509249100Z
2021-10-25T08:05:09.509300100Z . ____ _ __ _ _
2021-10-25T08:05:09.509342600Z /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
2021-10-25T08:05:09.509599800Z ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2021-10-25T08:05:09.509657700Z \\/ ___)| |_)| | | | | || (_| | )