流程以xxl-job-admin为例
1.基础环境
win/mac/linux
Rancher
Docker
2.下载源码
从Github上下载xxl-job
xxl-jobGithub
xxl-job官方地址
3.修改源码
打开 xxl-job 下的 xxl-job-admin
修改 application-properties 文件
修改数据库
修改为这种格式: 大括号包围
${xxx:yyy} • 1
该形式按xxx名称可以从环境变量中读取
如果xxx名称读取不到 则使用 yyy
yyy默认配置的话
xxx后边我们将从Rancher中导入
### xxl-job, datasource spring.datasource.url=${MYSQL_URL:jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai} spring.datasource.username=${MYSQL_USERNAME:root} spring.datasource.password=${MYSQL_PASSWORD:123456} spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
修改Token
### xxl-job, access token xxl.job.accessToken=${ACCESS_TOKEN:default_token}
所有想要外部控制的参数都可以这么传入
4.打包镜像
将当前项目通过Maven打包成jar包
(项目自带的Dockerfile 也可以自己编写一个)
FROM openjdk:8-jre-slim MAINTAINER xuxueli ENV PARAMS="" ENV TZ=PRC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ADD target/xxl-job-admin-*.jar /xxl-job-admin.jar ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /xxl-job-admin.jar $PARAMS"]
打包成镜像
这里就不解释参数的含义了
docker build -t 172.16.1.77/alibaba/xxl-job-admin:2.4.0 .
推送镜像
docker push 172.16.1.77/alibaba/xxl-job-admin:2.4.0
5.Rancher配置
这样便将镜像启动到 Rancher 中
Name可以自己随便写
WorkloadType Scalable是指可动态伸缩的 这里启动了2个服务
Docker Images 是镜像的地址
Port Mapping 需要暴露8080内部端口(publish the container port)到外部随机端口(on listening port)
Environment Variables 是刚才在 application-properties 中 ${xxx:yyy} 的部分 注意配置别写错了
启动效果