资源
xxl-job:1.9.1
docker:17.05.0-ce
maven:3.5.0-jdk-8
tomcat:8.5.23.0
mysql:5.6.40
一、创建数据库
- 克隆项目到服务器下
cd /tmp
git clone https://github.com/xuxueli/xxl-job.git
-
启动数据库
docker run -itd --name xxl-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.40
-
复制sql至mysql容器
docker cp /tmp/xxl-job-1.9.1/doc/db/tables_xxl_job.sql xxl-mysql:/tmp
-
进入容器
docker exec -it xxl-mysql /bin/bash
-
连接数据库
mysql -uroot -p123456
6.创建xxl-job数据库
CREATE DATABASE `xxl-job` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
导入数据库
source /tmp/tables_xxl_job.sql
-
验证并退出
use xxl-job;
show tables; //16张默认表
quit
- 退出mysql容器回到本地
exit
二、修改配置文件
-
修改xxl-job-admin配置
vim /tmp/xxl-job-1.9.1/xxl-job-admin/src/main/resources/xxl-job-admin.properties
将localhost:3306修改为你数据库ip:port 我的是本地ip的3306端口,如192.168.0.129:3306
xxl.job.db.url=jdbc:mysql://192.168.0.129:3306/xxl-job?useUnicode=true&characterEncoding=UTF-8
修改账户密码
xxl.job.db.password=123456
-
修改xxl-job-executor配置
vim /tmp/xxl-job-1.9.1/xxl-job-executor-samples/xxl-job-executor-sample-spring/src/main/resources/xxl-job-executor.properties
将xxl.job.admin.address修改为你xxl-job-admin容器将要启用的端口(在下面的步骤我将用8888端口启动xxl-admin容器,只要端口没被占用,可启用任意端口,但启动容器的时候请与之保持一致,不然项目启动不了)
xxl.job.admin.addresses=http://192.168.0.129:8888
三、编译调度中心和执行器
-
临时启动maven容器来编译项目(或者自己本地安装maven也行)
docker run -itd --name mvn maven:3.5.0-jdk-8 /bin/bash
-
将项目复制到maven容器内
docker cp /tmp/xxl-job-1.9.1 mvn:/tmp
-
进入容器编译xxl-job-admin
cd /tmp/xxl-job-1.9.1/xxl-job-admin
mvn clean package
- 同理编译执行器(我选的是spring)
cd /tmp/xxl-job-1.9.1/xxl-job-executor-samples/xxl-job-executor-sample-spring
mvn clean package
-
编译成功后退出maven容器
exit
-
将编译好的项目拷贝到本地
docker cp mvn:/tmp/xxl-job-1.9.1 /tmp
-
在拷贝好的目录下新建dockerfile以建立xxl-job-admin镜像
cd /tmp/xxl-job-1.9.1
vim dockerfile
- 以下为dockerfile内容
FROM tomcat:8.5
EXPOSE 8080
ENV TOMCAT_WEBAPPS /usr/local/tomcat/webapps
ENV TIME_ZONE Asia/Shanghai
RUN rm -rf $TOMCAT_WEBAPPS/ROOT/* $TOMCAT_WEBAPPS/docs $TOMCAT_WEBAPPS/examples $TOMCAT_WEBAPPS/host-manager $TOMCAT_WEBAPPS/manager
&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
ADD xxl-job-admin/target/xxl-job-admin-1.9.1/ $TOMCAT_APPS/ROOT/
- 新建xxl-job-admin镜像
docker build -t xxl-admin:0.1 . #注意后面有个“.”
docker images #可看到已打包的镜像
-
启动xxl-admin容器
docker run -itd --name xxl-admin -p 8888:8080 xxl-admin:0.1
-
替换第7步的dockerfile中ADD内容以新建xxl-executor镜像
ADD xxl-job-executor-samples/xxl-job-executor-sample-spring/target/xxl-job-executor-sample-spring-1.9.1/ $TOMCAT_APPS/ROOT/
-
将--name修改后重复第8,9步新建xxl-executor镜像并启动容器
docker build -t xxl-executor:0.1 .
docker run -itd --name xxl-executor -p 8888:8080 xxl-executor:0.1
- 访问http://192.168.0.129:8888即可登录xxl-job