我的环境为:
阿里云服务器,当使用docker部署xxl-job时,执行定时任务被拒绝连接。后台服务和xxl-job分别在两个不同的容器,出现如下情况:
xxl-job remoting error(Connection refused (Connection refused))
如果和我一样的情况,可以试着采用我下面的解决方式:
1.将xxl-job源码克隆下来,修改配置文件后,maven打jar包,并编写Dockerfile。
xxl-job仓库
2.将自己的后台服务打包,并编写Dockerfile。
3.使用docker compose进行容器编排,将xxl-job和后台服务都交由docker compose管理。
4.创建一个公用网络,并将xxl-job和后台服务都加入到同一个网络。
创建公用网络:
docker network create my-network
xxl-job和后台服务加入公共网络
version: '2.27.1' #docker-compose版本
networks:
my-network: #公共网络名称
services: #服务列表
xxx: #服务名
...... #后续省略
xxl-job-test:
container_name: xxl-job-test #容器名称
build: ./xxl-job #启动服务时,先将build中指定的dockerfile打包成镜像,再运行该镜像
image: xuxueli/xxl-job-admin:2.4.2 #指定镜像名称
ports: #端口映射
- 18989:18989
volumes: #目录挂载
- /home/meiwh/project/xxl-job/logs/xxl-job-admin.log:/data/applogs/xxl-job/xxl-job-admin.log
restart: always #自动重启
environment: #环境变量
TZ: Asia/Shanghai #时区
docker compose文件写好之后,将相关文件放到对应目标,使用命令启动容器即可。
docker compose up -d --build
# 我的是docker compose 插件版
服务启动成功后,测试执行一下任务是否执行成功。