流程以xxl-job-admin为例

1.基础环境

  • win/mac/linux
  • Rancher
  • Docker

2.下载源码

从Github上下载xxl-job
xxl-jobGithubxxl-job官方地址

3.修改源码

打开 xxl-job 下的 xxl-job-admin

Docker镜像部署至Rancher全局配置 以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配置

Docker镜像部署至Rancher全局配置 以xxl-job-admin为例_数据库_02


点击右上角的 Depoly修改为如下的配置

Docker镜像部署至Rancher全局配置 以xxl-job-admin为例_docker_03


这样便将镜像启动到 Rancher 中

  • Name可以自己随便写
  • WorkloadType Scalable是指可动态伸缩的 这里启动了2个服务
  • Docker Images 是镜像的地址
  • Port Mapping 需要暴露8080内部端口(publish the container port)到外部随机端口(on listening port)
  • Environment Variables 是刚才在 application-properties 中 ${xxx:yyy} 的部分 注意配置别写错了

启动效果

Docker镜像部署至Rancher全局配置 以xxl-job-admin为例_docker_04