流程以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}
该形式按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配置
点击右上角的 Depoly
修改为如下的配置
这样便将镜像启动到 Rancher 中
- Name可以自己随便写
- WorkloadType Scalable是指可动态伸缩的 这里启动了2个服务
- Docker Images 是镜像的地址
- Port Mapping 需要暴露8080内部端口(publish the container port)到外部随机端口(on listening port)
- Environment Variables 是刚才在 application-properties 中 ${xxx:yyy} 的部分 注意配置别写错了