原因:
这是由于docker部署xxljob时将xxl-job-admin与自己开发的执行器程序分别部署到两个容器内,而容器内网络端口互不相通导致;
最简单而且实际可行的解决办法是使用宿主机网络,将端口映射到容器外去。如图所示

version: '3'
services:
  xxl-job-admin-member-dev:
    #image: xuxueli/xxl-job-admin:2.2.0
    image: xuxueli/xxl-job-admin:2.3.0
    restart: always
    container_name: xxl-job-admin-member-dev
    environment:
      PARAMS: '--server.port=8800 --spring.datasource.url=jdbc:mysql://xxxx.x.x.x:3306/xxl_job_member_dev?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false --spring.datasource.username=xxx --spring.datasource.password=xxx --spring.datasource.hikari.max-lifetime=60000'
    ports:
      - 8800:8800
      - 6666:6666
    volumes:
      - /mnt/logs/xxl-job-member-dev:/data/applogs
    network_mode: host

其中8800是admin管理端netty服务器的端口,6666是客户端执行器的运行端口,其实ports这个字段可以不用写,但是为了让读者看清内部映射的端口是什么,所以才写上去,相当于注释。

如果是docker直接运行,则在docker run 命令中增加 -p 8800:8800 -p 6666:6666端口映射即可


此处端口仅为示例,根据实际情况修改docker run命令即可,如已创建好运行容器,建议删除后带上需映射的端口号再创建一次

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐