基于Jenkins的自动化部署到Docker的Coding项目

10 篇文章 0 订阅

环境:

  • Centos7
  • Docker
  • SringBoot部署docker
  • JAVA8

安装Docker可以参考:Docker安装

SringBoot部署docker可以参考:SringBoot部署docker

JAVA环境可以参考:JAVA环境安装

环境准备完毕,开始安装Jenkins:

  1. Jenkins下载:https://jenkins.io/zh/download/

  2. Jenkins安装:rpm -ivh 包名

  3. 修改配置

    vim /etc/sysconfig/jenkins
    

    主要两项:

    # 服务端口
    JENKINS_PORT="8888"
    # JENKINS登录用户
    JENKINS_USER="root"
    
  4. 修改目录权限

    chown -R root:root /var/lib/jenkins
    chown -R root:root /var/cache/jenkins
    chown -R root:root /var/log/jenkins
    
  5. 启动jenkins服务

    service jenkins restart
    systemctl start jenkins
    
  6. 访问jenkins

    http://服务器地址:端口
    
  7. 查看密码

    cat /var/lib/jenkins/secrets/initialAdminPassword
    

    登录之后选择,选择推荐配置

  8. 配置环境

    选择系统管理->全局工具配置

    配置JDK、git、Maven
    在这里插入图片描述在这里插入图片描述
    点击保存

  9. 安装插件,选择系统管理->插件管理

    选择安装Maven Integration plugin插件

  10. 访问http://服务器地址:端口/restart/,选择重启Jenkins服务

当前安装完毕,下面我们来新建项目

  1. 选择新建项目
    在这里插入图片描述

  2. 配置Source Code Management(源码管理)

    我这里使用的是coding的git仓库。

    Repository URL是git仓库的地址;Credentials 是访问令牌;Branch Specifier选择拉取源码时分支
    在这里插入图片描述
    注意:访问令牌需要自己创建。我这里使用的是coding的git仓库,所以在设置->项目令牌中选择新增令牌在这里插入图片描述在这里插入图片描述

  3. 配置Build Triggers

    这里使用WebHook触发自动构建项目在这里插入图片描述
    此处只有master分支会触发构建。同时我们需要在coding上开启WebHook,URL处填入上图蓝色框中的WebHook地址。(注意:这个地址需要coding能访问到,因为WebHook是项目在更新时,会发送一条请求给指定的URL。当Jenkins接受到这个请求之后,触发构建。)在这里插入图片描述

  4. 配置构建前执行的shell脚本在这里插入图片描述
    代码:

    # !/bin/sh -ilex
    export PATH=$PATH:/usr/local/lib/node_modules/apidoc/bin:/opt/node-v6.9.4
    # 获取容器
    containers=$(docker ps -a  -q -f name=test_master)
    # 输出容器
    echo $containers
    if [ ! "$containers" ] ; then
            echo "不存在容器"
    else
    		# 停止容器
            docker stop $containers
            # 删除容器
            docker rm $containers
    fi
    # 删除镜像
    images=$(docker images -q  "test/root/**")
    if [ ! "$images"   ] ; then
            echo "不存在镜像"
    else
            docker rmi $images
    fi
    # 生成文档
    apidoc -i src/ -o src/main/resources/html
    # 拷贝项目配置文件
    cp /opt/Dockerfile ./
    cp /opt/application.properties ./src/main/resources/
    

    说明:

    1. 这个脚本是在源码拉取git之后,Maven执行构建之前,在项目工作空间的根目录下执行。

    2. export PATH=$PATH:/usr/local/lib/node_modules/apidoc/bin:/opt/node-v6.9.4是由于此shell读取不到部分node环境配置

    3. 构建前执行脚本的主要目的是:

      • 停止旧的容器
      • 删除旧的容器
      • 删除旧的镜像
    4. apidoc -i src/ -o src/main/resources/html此处使用了apidoc生成HTML文档插件。不了解的可以参考我的另一篇文章:java生成API文档

    5. 由于配置文件未上传到git仓库之中,所以我们使用命令单独拷贝至工作空间下,当然我们需要将文件提前放置在服务器的目录下。一个是构建docker的Dockerfile,另一个是SpringBoot的配置文件application.properties

      # 拷贝项目配置文件
      cp /opt/Dockerfile ./
      cp /opt/application.properties ./src/main/resources/
      
  5. 配置构建时的命令在这里插入图片描述
    Root POM:Maven项目的pom文件;Goals and options:构建时,Maven执行的命令。在执行构建命令时,Maven会自动编译源码,并且依据DockerFile文件自动打包成docker镜像,上传至Docker中。

  6. 配置构建后,执行的shell脚本在这里插入图片描述
    代码:

    # !/bin/sh -l
    #运行镜像
    docker run -t -d -p 32123:32123 --name test_master $(docker images -q "root/**")
    

    说明:

    由于在构建时,已经将镜像导打包至docker中,所以在构建后我们只需将镜像运行起来。

  7. 保存配置,选择立即构建

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值