docker 部署 xxl-job、引用外部配置文件、连接宿主机 Mysql

出于学习的目的(瞎折腾)。想使用 Docker 部署一下 xxl-job。并使用外部配置文件,方便后续更新。使用宿主机已经安装好的 Mysql。

1. 拉取 xxl- job 源码

git clone https://gitee.com/xuxueli0323/xxl-job.git

2. 使用IDEA打开,打包

3. 复制 jar 包、配置文件、Dockerfile 到 xxl-job 目录下

4. 修改 Dockerfile

FROM openjdk:8-jre-slim
MAINTAINER xuxueli

ENV PARAMS=""

# 设置外部配置文件路径(必须,否则无法加载到此配置文件)
ENV JAVA_OPTS="-Dspring.config.location=/xxl-job/application.properties"

# 复制配置文件到容器中
COPY ./application.properties /xxl-job/application.properties
COPY ./logback.xml /xxl-job/logback.xml

ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ADD xxl-job-admin-*.jar /xxl-job/app.jar

ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /xxl-job/app.jar $PARAMS"]

5. 配置连接宿主机数据库

5.1 先找到宿主机IP

       主要修改数据库连接信息。宿主机在与容器同一局域网,所以需要先找到宿主机此局域网的 ip。ifconfig 命令找到 docker0 网卡信息,IP为 172.18.0.1

5.2  修改 application.properties 中的数据库连接信息

### web
server.port=8080
server.servlet.context-path=/xxl-job-admin

### actuator
management.server.servlet.context-path=/actuator
management.health.mail.enabled=false

### resources
spring.mvc.servlet.load-on-startup=0
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/

### freemarker
spring.freemarker.templateLoaderPath=classpath:/templates/
spring.freemarker.suffix=.ftl
spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
spring.freemarker.settings.number_format=0.##########

### mybatis
mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model

### xxl-job, datasource
spring.datasource.url=jdbc:mysql://172.18.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

### datasource-pool
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=30
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.max-lifetime=900000
spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.validation-timeout=1000

### xxl-job, email
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=184248697@qq.com
spring.mail.from=184248697@qq.com
spring.mail.password=roxdezsngxuvbjii
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

### xxl-job, access token
xxl.job.accessToken=default_token

### xxl-job, i18n (default is zh_CN, and you can choose "zh_CN", "zh_TC" and "en")
xxl.job.i18n=zh_CN

## xxl-job, triggerpool max size
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100

### xxl-job, log retention days
xxl.job.logretentiondays=30

6. 构建镜像

docker build -t xxl-job-admin .

7. 运行容器

docker run -d -p 8181:8080 xxl-job-admin

8. 访问

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以通过以下步骤来使用 Docker 部署 xxl-job: 1. 首先,确保你的机器上已经安装了 DockerDocker Compose。如果没有安装,可以按照官方文档进行安装。 2. 创建一个文件夹,用于存放 xxl-job 的相关配置和数据。进入该文件夹,创建一个名为 `docker-compose.yml` 的文件,并在其中编写以下内容: ```yaml version: '3' services: xxl-job-admin: image: xuxueli/xxl-job-admin:2.2.0 ports: - 8080:8080 volumes: - ./data:/data/applogs environment: - PARAMS=-Dspring.datasource.url=jdbc:mysql://mysql_host:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8 - PARAMS=-Dspring.datasource.username=root - PARAMS=-Dspring.datasource.password=root - PARAMS=-Dxxl.job.admin.addresses=http://localhost:8080/xxl-job-admin xxl-job-executor-sample-springboot: image: xuxueli/xxl-job-executor-sample-springboot:2.2.0 environment: - PARAMS=-Dspring.datasource.url=jdbc:mysql://mysql_host:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8 - PARAMS=-Dspring.datasource.username=root - PARAMS=-Dspring.datasource.password=root - PARAMS=-Dxxl.job.admin.addresses=http://xxl-job-admin:8080/xxl-job-admin ``` 注意:将 `mysql_host` 替换为你的 MySQL 主机地址。 3. 在该文件夹中创建一个名为 `data` 的子文件夹,用于存放 xxl-job 的日志文件。 4. 打开终端,进入到存放配置文件的文件夹,执行以下命令启动 xxl-job: ```bash docker-compose up -d ``` 5. 等待一段时间,xxl-job 将会在 Docker 容器中启动。你可以通过访问 `http://localhost:8080/xxl-job-admin` 来访问 xxl-job管理界面。 这样就完成了使用 Docker 部署 xxl-job 的过程。你可以根据需要进行进一步的配置和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值