当前位置: 首页 > article >正文

docker部署xxl-job(含镜像打包)

docker部署xxl-job比较简单,xxl-job已经给出了dockerfile,我们只需要打包一下镜像,再运行就行了。
需要注意的是,

  1. 国内访问github下载源码可能不太通畅,因此改成了从gitcode下载。
  2. 国内访问dockerhub可能不太通畅,所以基础镜像地址改成了daocloud提供的代理地址,感谢大善人daocloud。

直接使用官方镜像

官方提供了镜像,在dockerhub上,地址是 xuxueli/xxl-job-admin
比如最新版本是 docker pull xuxueli/xxl-job-admin:2.4.2
唯一的问题是dockerhub可能不方便访问,如果不方便,参考下文的打包镜像

打包镜像

下载源码

git clone https://gitcode.com/xuxueli0323/xxl-job.git

切换到指定版本

建议,默认下载到的是master分支,存在开发中代码,最好切换到最近一次的稳定发布代码
git checkout 2.4.2

编译

mvn clean package

编译以后,可执行jar包在xxl-job-admin/target目录下:

root@xiaochao:~/xxl-job/xxl-job# ll xxl-job-admin/target/
...
-rw-r--r-- 1 root root 41062212 Nov 27 02:51 xxl-job-admin-2.4.2.jar
-rw-r--r-- 1 root root   528362 Nov 27 02:50 xxl-job-admin-2.4.2-javadoc.jar
-rw-r--r-- 1 root root  1895421 Nov 27 02:50 xxl-job-admin-2.4.2-sources.jar
...

只有xxl-job-admin-2.4.2.jar是可执行jar包。

打包docker

在根目录执行新建脚本build.sh

#!/bin/bash
set -ex

XXL_VERSION=$(cat pom.xml | grep '<version>' | head -n 1 | awk -F '[><]' '{print $3}')
mvn clean package

# 移除非可执行jar包
rm -rf xxl-job-admin/target/xxl-job-admin-$XXL_VERSION-*.jar

# 国内下载不动dockerhub的镜像,改为daocloud代理
cp xxl-job-admin/Dockerfile xxl-job-admin/Dockerfile_new -f
sed -i 's|openjdk|m.daocloud.io/docker.io/library/openjdk|g' xxl-job-admin/Dockerfile_new

docker build -t xxl-job-admin:$XXL_VERSION -f xxl-job-admin/Dockerfile_new xxl-job-admin

执行 chmod 700 build.sh && ./build.sh

打包后结果:

root@xiaochao:~/xxl-job/xxl-job# docker images
REPOSITORY                                                                TAG       IMAGE ID       CREATED         SIZE
xxl-job-admin                                                             2.4.2     5375e8576f32   7 seconds ago   236MB

部署xxl-job

准备数据库

准备一个mysql数据库,执行xxl-job初始化脚本。
初始化脚本是 下载下来源码的 doc/db/tables_xxl_job.sql

启动xxl-job

编写脚本 start_xxl-job.sh

#!/bin/bash
set -e
service_id="$(docker ps -a| grep xxl-job| awk -F " " '{print $1}')"
if [ ! -z "$service_id" ]
then
  docker kill $service_id
  docker rm $service_id
fi

docker run \
--name xxl-job \
-p 8080:8080 \
-e SPRING_DATASOURCE_URL='jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai' \
-e SPRING_DATASOURCE_USERNAME='xxx' \
-e SPRING_DATASOURCE_PASSWORD='xxx' \
-e PARAMS='--xxl.job.accessToken=复杂token' \
-d \
xxl-job-admin:2.4.2

其中 XXL_JOB_ACCESS-TOKEN 是后面程序访问xxl-job要用的

其他可配置内容参考 xxl-job 配置部署“调度中心”
在脚本里面加-e 环境变量就行

数据库密码啥的改成自己的


http://www.kler.cn/a/420028.html

相关文章:

  • macOS运行amd64的镜像
  • Pyside6-QTableView实战
  • 【Robocasa】Code Review
  • 【NLP 4、数学基础】
  • openjdk17 jvm堆空间分配
  • Cento7 紧急模式无法正常启动,修复home挂载问题
  • 一键解析RAW文件,GPS定位展示,摄影师专用照片管理软件
  • 单台服务器上创建多个端口MySQL服务
  • 【Leetcode 每日一题】52. N 皇后 II
  • windows执行多个jar包脚本,若依微服务批量执行脚本
  • 安装 RabbitMQ 服务
  • Github中PAT和SSHKeys区别
  • vue和react之间的区别?
  • 工业机器视觉-基于深度学习的托盘PCB识别
  • 【职业发展】从ETL到大数据:如何规划你的数据职业生涯?
  • Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
  • AIoT赋能下的智慧园区管理系统,构建新一代智能园区
  • IDEA 2024 配置Maven
  • 【CSS in Depth 2 精译_064】10.3 CSS 中的容器查询相对单位 + 10.4 CSS 容器样式查询 + 10.5 本章小结
  • 数据处理与统计分析——07-Pandas的concat连接、merge()合并、多表查询、内/外/自连接查询操作
  • 【温州】《政务信息化项目软件开发费用测算规范》(DB 3303/T 059—2023)-省市费用标准解读系列23
  • 机器学习周志华学习笔记-第11章<特征选择与稀疏学习>
  • 计算机的错误计算(一百七十二)
  • 3dtile平移子模型以及修改 3D Tiles 模型的模型矩阵z平移
  • 用原生JS创建简易的axios
  • Django 视图层