1. 程式人生 > 其它 >docker中安裝xxl-admin 和 xxl-job排程中心

docker中安裝xxl-admin 和 xxl-job排程中心

技術標籤:dockerjava網路linux

docker中安裝xxl-admin 和 xxl-job

配置 xxl-admin 和 xxl-job

  1. xxl-admin 配置 埠 DataSource 郵箱等
  2. xxl-job 配置埠 和 admin管理後臺的地址
xxl.job.admin.addresses=http://admin-host:admin-port/xxl-job-admin
  1. 注意配置 logback.xml 裡面的 log 地址為可寫地址
  2. 打成 jar 包上傳到伺服器

dockerfile 編寫

xxl-admin

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD job-admin.jar job-admin.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /job-admin.jar

xxl-exec

FROM openjdk:8-jdk-alpine
# 這裡安裝的是一個 PHP 的執行器
RUN apk add php7 php7-pdo_mysql php7-opcache php7-curl php7-
gd php7-mbstring php7-mysqli php7-json php7-dom php7-xml php7-xsl php7-zip php7-bcmath php7-redis php7-pdo php-simplexml php-ctype php7-iconv php7-xmlwriter php7-xmlreader bash VOLUME /tmp ADD job-exec.jar job-exec.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar"
,"/job-exec.jar"]

docker network

因為 xxl-admin 和 xxl-job 被我分別放在兩個容器裡, 他們之間要通訊需要建立一個網路, 這裡用橋接的方式幫他們建立在一個內網中
命令如下

docker network create xxlJobNetwork
# 看下剛剛建立的網路
docker network ls
# 8a24dbb0b35f        xxlJobNetwork               bridge              local

拿到 xxlJobNetwork 網路的名稱在下一步 docker run 的時候帶入 --network 引數中

docker image生成和容器啟動

  1. 在 admin 目錄輸入 docker build -t job-admin:v1 .
    在這裡插入圖片描述
    成功後獲取到對應的 image id

  2. 啟動admin管理後臺 docker run -d --name job-admin --network xxlJobNetwork -p 9091:9091 imageId注意jar包裡面配置的埠和容器埠暴露的埠要一致

  3. 到執行器 jar 包目錄 輸入docker build -t job-exex:v1 .然後獲取到對應的 imageId

  4. 啟動排程器docker run -d --name job-admin --network xxlJobNetwork -v 外部掛載路徑:/projects(容器內部專案地址) -p 9092:9092 imageId

表結構

按git 專案中給的資料檔案執行一次

後續

如果出現排程中心註冊不到執行器地址 可以進入容器 cat 容器中的日誌

#進入 job-exec 容器
docker exec -it containerId /bin/sh