xuxueli / xxl-job

A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
http://www.xuxueli.com/xxl-job/
GNU General Public License v3.0
27.45k stars 10.86k forks source link

ubuntu下docker部署此项目 #385

Closed Vickey-Wu closed 6 years ago

Vickey-Wu commented 6 years ago

你好,请问有在ubuntu使用docker部署该项目的文档吗?在下菜鸟不太懂怎么部署,麻烦了,谢谢

system version:Linux GLH-Intranet-Server 4.8.0-59-generic #64-Ubuntu SMP xxx x86_64 x86_64 x86_64 GNU/Linux docker version: Docker version 17.05.0-ce, build 89658be

xuxueli commented 6 years ago

你好,本项目对环境没有特殊要求,使用常规web项目打包部署方法即可。

Vickey-Wu commented 6 years ago

嗯嗯,已经部署了,谢谢! 以下是我部署的步骤,希望对他人有点帮助

Vickey-Wu commented 6 years ago

docker 部署xxl-job 所需资源

xxl-job:1.9.1
docker:17.05.0-ce
maven:3.5.0-jdk-8
tomcat:8.5.23.0
mysql:5.6.40

一、创建数据库

  1. 克隆项目到服务器下

    cd /tmp
    git clone https://github.com/xuxueli/xxl-job.git
  2. 启动数据库 docker run -itd --name xxl-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.40

  3. 复制sql至mysql容器 docker cp /tmp/xxl-job-1.9.1/doc/db/tables_xxl_job.sql xxl-mysql:/tmp

  4. 进入容器 docker exec -it xxl-mysql /bin/bash

  5. 连接数据库 mysql -uroot -p123456

6.创建xxl-job数据库 CREATE DATABASE ```xxl-job``` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  1. 导入数据库 source /tmp/tables_xxl_job.sql

  2. 验证并退出

    use xxl-job;
    show tables;        //16张默认表
    quit
  3. 退出mysql容器回到本地 exit

二、修改配置文件

  1. 修改xxl-job-admin配置 vim /tmp/xxl-job-1.9.1/xxl-job-admin/src/main/resources/xxl-job-admin.properties 将localhost:3306修改为你数据库ip:port 我的是本地ip的3306端口,如192.168.0.129:3306 xxl.job.db.url=jdbc:mysql://192.168.0.129:3306/xxl-job?useUnicode=true&characterEncoding=UTF-8 修改账户密码 xxl.job.db.password=123456

  2. 修改xxl-job-executor配置 vim /tmp/xxl-job-1.9.1/xxl-job-executor-samples/xxl-job-executor-sample-spring/src/main/resources/xxl-job-executor.properties 将xxl.job.admin.address修改为你xxl-job-admin容器将要启用的端口(在下面的步骤我将用8888端口启动xxl-admin容器,只要端口没被占用,可启用任意端口,但启动容器的时候请与之保持一致,不然项目启动不了) xxl.job.admin.addresses=http://192.168.0.129:8888

三、编译调度中心和执行器

  1. 临时启动maven容器来编译项目(或者自己本地安装maven也行) docker run -itd --name mvn maven:3.5.0-jdk-8 /bin/bash

  2. 将项目复制到maven容器内 docker cp /tmp/xxl-job-1.9.1 mvn:/tmp

  3. 进入容器编译xxl-job-admin

    cd /tmp/xxl-job-1.9.1/xxl-job-admin
    mvn clean package
  4. 同理编译执行器(我选的是spring)

    cd /tmp/xxl-job-1.9.1/xxl-job-executor-samples/xxl-job-executor-sample-spring
    mvn clean package
  5. 编译成功后退出maven容器 exit

  6. 将编译好的项目拷贝到本地 docker cp mvn:/tmp/xxl-job-1.9.1 /tmp

  7. 在拷贝好的目录下新建dockerfile以建立xxl-job-admin镜像

    cd /tmp/xxl-job-1.9.1
    vim dockerfile
  8. 以下为dockerfile内容

    
    FROM tomcat:8.5
    EXPOSE 8080

ENV TOMCAT_WEBAPPS /usr/local/tomcat/webapps ENV TIME_ZONE Asia/Shanghai

RUN rm -rf $TOMCAT_WEBAPPS/ROOT/* $TOMCAT_WEBAPPS/docs $TOMCAT_WEBAPPS/examples $TOMCAT_WEBAPPS/host-manager $TOMCAT_WEBAPPS/manager \ && ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone

ADD xxl-job-admin/target/xxl-job-admin-1.9.1/ $TOMCAT_APPS/ROOT/


9. 新建xxl-job-admin镜像

docker build -t xxl-admin:0.1 . #注意后面有个“.” docker images #可看到已打包的镜像


10. 启动xxl-admin容器
`
docker run -itd --name xxl-admin -p 8888:8080 xxl-admin:0.1
`

11. 替换第7步的dockerfile中ADD内容以新建xxl-executor镜像

ADD xxl-job-executor-samples/xxl-job-executor-sample-spring/target/xxl-job-executor-sample-spring-1.9.1/ $TOMCAT_APPS/ROOT/


12. 将--name修改后重复第8,9步新建xxl-executor镜像并启动容器

docker build -t xxl-executor:0.1 . docker run -itd --name xxl-executor -p 8888:8080 xxl-executor:0.1



13. 访问http://192.168.0.129:8888即可登录xxl-job