书接上一篇《xxl-job 的集成及 Mysql 转 PostgresSql》,上一篇文章中第 9 章有讲到替换 application.properties 配置文件的数据库连接字符串的内容,但如果我们以 Docker 方式运行的话,则不需要修改配置文件,因为我们在镜像启动命令里可以以命令方式替换掉。
今天来说说如何将修改过源码的 xxl-job 打包成 Docker 镜像,直奔主题:
1.构建镜像
直接使用 idea 构建源码xxl-job-admin/Dockerfile
# 国内下载不动dockerhub的镜像,改为daocloud代理
FROM m.daocloud.io/docker.io/library/openjdk:8-jre-slim
ENV PARAMS=""
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY target/xxl-job-admin-*.jar /app.jar
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]
2.运行容器
/**
* 如需自定义 mysql 等配置,可通过 "-e PARAMS" 指定,参数格式 PARAMS="--key=value --key2=value2" ;
* 配置项参考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
* 如需自定义 JVM内存参数 等配置,可通过 "-e JAVA_OPTS" 指定,参数格式 JAVA_OPTS="-Xmx512m" ;
*/
* 如需自定义 mysql 等配置,可通过 "-e PARAMS" 指定,参数格式 PARAMS="--key=value --key2=value2" ;
* 配置项参考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
* 如需自定义 JVM内存参数 等配置,可通过 "-e JAVA_OPTS" 指定,参数格式 JAVA_OPTS="-Xmx512m" ;
*/
docker run -d --restart=always \ -p 8080:8080 \ -e PARAMS="--spring.datasource.url=jdbc:postgresql://xxx.xxx.xxx.xxx:5432/xxl_job --spring.datasource.username=xxx --spring.datasource.password=xxxxxx --spring.datasource.driver-class-name=org.postgresql.Driver" \ -v /xxl-job/logs:/data/applogs \ --name xxl-job \ xxl-job:2.5.0
参数解释:
-
- -p 8080:8080 映射主机端口
- -e PARAMS=xxx 设置 application.properties 配置文件参数
- -v /xxl-job/logs:/data/applogs 持久化日志
文章评论