Dockerfile
FROM openjdk:8
MAINTAINER kailiwang
ADD target/xxl-job-admin-*.jar /app.jar
ENV JAVA_OPTS=""
ENV PARAMS=""
ENV TZ=Asia/Shanghai
ENV BACKEND_SERVER_PORT=80
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT ["sh","-c","java -Djava.security.egd=file:/dev/./urandom -jar $JAVA_OPTS /app.jar $PARAMS"]
EXPOSE $BACKEND_SERVER_PORT
Linux/xxl-job/docker-compose-xxl-job.yml
# 参考文档: https://www.xuxueli.com/xxl-job
version: "3"
services:
xxl-job-admin:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/xxl-job-admin:2.3.0 # 原镜像`xuxueli/xxl-job-admin:2.3.0`
container_name: xxl-job-admin
environment:
# TODO 根据自己的配置修改,配置项参考源码文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
PARAMS: "--spring.datasource.url=jdbc:mysql://192.168.0.88:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
--spring.datasource.username=root
--spring.datasource.password=root
--server.servlet.context-path=/xxl-job-admin
--spring.mail.host=smtp.qq.com
--spring.mail.port=25
--spring.mail.username=xxx@qq.com
--spring.mail.from=xxx@qq.com
--spring.mail.password=xxx
--xxl.job.accessToken="
ports:
- "9003:8080"
docker run
[root@master docker-test]# docker run --name ssh \
> -p 18080:8080 \
> -e PARAMS="--kl.config.a=11 --kl.config.b=22 --kl.config.c=33" \
> -d ssh:1.0
对如下application-pro.yml
# 默认以下配置默认会读取环境变量的值
# redis配置
redis-host: ${REDIS_HOST:172.20.0.2}
redis-port: ${REDIS_PORT:6379}
redis-password: ${REDIS_PASSWORD:123456}
# 本服务连接mysql的地址和端口号
mysql-host: ${MYSQL_HOST:172.20.0.3}
mysql-port: ${MYSQL_PORT:3306}
mysql-username: ${MYSQL_USERNAME:root}
mysql-password: ${MYSQL_ROOT_PASSWORD:123456}
mysql-name: ${MYSQL_DATABASE_NAME:db}
可以在docker run 通过-e REDIS_HOST=localhost 指定变量