jenkins实践

docker + jenkins + github + springboot application 的 CI/CD

本文以centos 8 的阿里云 云服务器 为案例。

云服务需要开放8080给jenkins用,以及一个springboot服务的端口。

一、docker 安装

  1. 删除原先docker 如果有想重装的话:

    • 查看docker的版本

      yum list installed | grep docker
      

      image-20210530152008035

    • 删除相关文件:

      yum -y remove containerd.io.x86_64 docker-ce-cli.x86_64 docker-scan-plugin.x86_64 # 列表内的删除
      
    • 清理文件:

        yum clean all
      

    这里用docker search 时就会告诉你docker没有了。

  2. 安装docker

    • 安装docker 基础包

      yum install -y yum-utils device-mapper-persistent-data lvm2
      

      jenkins实践_第1张图片

    • 设置稳定仓库

      yum-config-manager \
          --add-repo \
          https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      

      image-20210530154437753

    • 安装最新版本(latest)

      yum install docker-ce docker-ce-cli containerd.io
      

      最后complete 就是可以了。
      也可以自定义版本 :

      yum list docker-ce --showduplicates | sort -r #查看版本
      sudo yum install docker-ce- docker-ce-cli- containerd.io #安装指定版本

    • 配置镜像源(一般用阿里云或者清华之类的):

      vi  /etc/docker/daemon.json
      

      将下面的粘贴进去就好了:

      {
          "registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]
      }
      
    • 启动docker

      systemctl start docker
      

      如果pull很慢可以重启一下,还不行就换一个源试一下。

二、docker中安装jenkins

  1. 下载maven (用于挂载到jenkins 内)

    # 下载资源
    
    wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
    
    # 解压
    
    tar vxf apache-maven-3.3.9-bin.tar.gz
    
    # 移到一个目录
    
    mv apache-maven-3.3.9 /opt/maven-3.3.9
    
    # 配置环境变量
    
    export MAVEN_HOME=/opt/maven-3.3.9
    export PATH=${PATH}:${MAVEN_HOME}/bin
    
    # 刷新文件
    
    source /etc/profile
    
    # 查看版本号,有显示则配置成功
    
    mvn -v  
    
  2. 安装jenkins+启动容器

    docker run \
      -u root \
      --rm \
      -d \
      -p 8080:8080 \
      -p 50000:50000 \
      -v /var/jenkins_home:/var/jenkins_home \
      -v /usr/lib/jvm/:/usr/lib/jvm/ \
      -v /opt/data/:/opt/data/ \
      -v /opt/maven-3.3.9:/opt/maven-3.3.9 \
      -v /var/run/docker.sock:/var/run/docker.sock \
      --name jenkins \
      jenkinsci/blueocean
    
  3. 查看容器是否运行

    image-20210530164437165

三、jenkins 配置

  1. 进去jenkins 并安装插件

    连接为 http://ip:8080

    然后会看见这样的图:

    在宿主机中运行一下命令获取密码:

    cat /var/jenkins_home/secrets/initialAdminPassword
    

    image-20210530165242599

    粘贴密码进去然后安装默认的插件:

    jenkins实践_第2张图片

    设置账户(要记住账户密码即可,邮箱必填,但可以填不存在的):
    jenkins实践_第3张图片

    下一步:

    jenkins实践_第4张图片

  2. 重启后进去jenkins并配置jenkins

    填写刚才写的amin账户并登入:

    jenkins实践_第5张图片

    进来后看见这个算是安装Jenkins成功了

    jenkins实践_第6张图片

    为部署程序先配置jenkins:

    1. 下载plugin

      jenkins实践_第7张图片

      找到这些插件并点击下载后重启

      jenkins实践_第8张图片

    2. 全局配置

      再次进去jenkins并设置全局配置

      jenkins实践_第9张图片

      查看容器内的jdk位置

      jenkins实践_第10张图片

      配置jdk

      jenkins实践_第11张图片

      git 默认就好

      jenkins实践_第12张图片

      配置maven

      jenkins实践_第13张图片

      配置docker,先点apply再点save.

    3. 系统配置

      jenkins实践_第14张图片

      配置github, 点击GitHub 下面的 advance后会显示如下

      jenkins实践_第15张图片

      在github中配置webhook

      apply加save保存配置。

四、部署springboot application

  1. 创建一个maven的item

    jenkins实践_第16张图片

    进入后填完名称选maven后点ok

    jenkins实践_第17张图片

  2. 配置过程

    配置github url

    jenkins实践_第18张图片

    jenkins实践_第19张图片

    jenkins实践_第20张图片

    添加完保存后,在选择刚才创建的方式

    添加webhook的支持

    jenkins实践_第21张图片

    在build前需要做一些配置

    jenkins实践_第22张图片

    配置build之后要做的事情:

    在配置这个之前,先配置build目录在宿主机(容器内也可以):

    cd /opt/data
    mkdir build
    chmod 755 build
    cd build
    vi Dockerfile
    chmod 755 Dockerfile # 在编译保存后运行
    

    将下面内容粘贴到文件中(注意jar的名称配置):

    #java1.8基础镜像
    FROM java:8  
    #创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录          
    VOLUME /tmp            
    #复制jar到test下且重命名为test_web0.jar
    ADD jenkins-test-1.0-SNAPSHOT.jar web.jar 
    #容器开放端口
    EXPOSE 80            
    ENTRYPOINT ["java","-jar","web.jar"]
    

    这里注意jar的名称要和自己打包后的一致

    #将打包好的jar项目,移到/opt/data/build目录
    mv /var/jenkins_home/workspace/application-test/target/jenkins-test-1.0-SNAPSHOT.jar /opt/data/build
    #切换目录到/opt/data/build
    cd /opt/data/build
    #执行构建Dockerfile命令
    docker build -t demo:v1.0 .
    #停止之前的容器运行
    docker stop demo
    #删除之前的容器
    docker rm demo 
    #运行刚刚创建的容器
    docker run -d --name demo -p 8081:8081 demo:v1.0
    echo "构建完成"
    

    jenkins实践_第23张图片

    最后apply save一下。

    build试一下:

    jenkins实践_第24张图片

    如果报错

    1. 容器缺少 git,则安装一下git就好。

    2. 如果build 的步骤有问题,看一下是不是文件名配置有问题,修改一下。

    3. 如果时stop容器出问题,可以运行下面命令创建一个容器,然后再重新build 一下。

      docker run -d --name demo -p 8081:8081 demo:v1.0

五、测试

  1. 访问ip:port 测试效果:

    jenkins实践_第25张图片

  2. 修改代码,查看会不会自动build。 是成功的。

jenkins实践_第26张图片

如果不行,回到上面配置webhook地方再配置一下就可以了。

一下。

  1. 如果时stop容器出问题,可以运行下面命令创建一个容器,然后再重新build 一下。

    docker run -d --name demo -p 8081:8081 demo:v1.0

五、测试

  1. 访问ip:port 测试效果:

    [外链图片转存中…(img-QWdGgD6y-1649060659852)]

  2. 修改代码,查看会不会自动build。 是成功的。

​ [外链图片转存中…(img-RFnh4buW-1649060659853)]

如果不行,回到上面配置webhook地方再配置一下就可以了。

ps: 如果有什么问题我们可以一起讨论一下。 欢迎指教。

你可能感兴趣的:(部署,jenkins)