暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker 教程:四、Docker结合Jenkins构建持续集成环境

程序员雨衣 2019-06-08
210

Docker结合Jenkins构建持续集成环境

持续集成是什么


持续:完成一个新功能就向下一个环节交付,不断发现问题,解决问题。

集成:研发人员提交新代码到主干仓库,进行构建、部署、测试,不断做集成,修正集成结果。

部署:将项目发布到测试环境、预生产环境或生产环境。

交付:将最终产品发布到预生产环境或生产环境,给用户使用。

持续集成(Continuous Integration):代码合并、构建、部署、测试都在一起,不断地执行这个过程,并对结果反馈。

持续交付(Continuous Delivery):将最终产品发布到生产环境,给用户使用。

持续部署(Continuous Deployment):将新需求部署到生产环境。



持续集成相关工具

Jenkins :一个开源的持续集成工具,提供软件版本发布、自动测试等一系列流程及丰富的插件。

Maven:一个自动化构建工具,通过一段描述来管理项目的构建,比如编译、打包等逻辑流程。

SVN/Git:源代码版本管理工具。

Docker:容器化技术;打包项目环境与快速部署。




Docker+Jenkins+Maven+SVN搭建持续集成环境


发布流程设计

环境说明

    操作系统:Ubuntu16.04_x64 Maven3.5
    Tomcat8
    JDK1.8
    Jenkins2.7 Docker CE 17.06

    SVN安装配置及简单使用

      # apt-get install subversion
      # mkdir /home/svn
      # svnadmin create /home/svn/repos
      # vi /home/svn/repos/conf/svnserve.conf
      anon-access = none auth-access = write password-db = passwd authz-db = authz
      # vi /home/svn/repos/conf/passwd
      [users]
      test = 123456
      # vi /home/svn/repos/conf/authz [repos:/]
      test = rw
      # svnserve -d -r /home/svn
      仓库地址:svn://192.168.1.151/repos

      Docker镜像仓库搭建

        # docker run -d \
        -v /opt/registry:/var/lib/registry \
        -p 5000:5000 \
        --restart=always \
        --name registry \ registry
        在部署节点配置Docker可信任私有仓库:
        # vi /etc/docker/daemon.json
        {"registry-mirrors": ["http://04be47cf.m.daocloud.io"],"insecure-registries":["192.168.0.151:5000"]}


        上传基础镜像到私有仓库:
        # docker build -t 192.168.0.151:5000/lnmp-nginx:base .
        # docker build -t 192.168.0.151:5000/lnmp-php:base .
        # docker push 192.168.0.151:5000/lnmp-nginx:base
        # docker push 192.168.0.151:5000/lnmp-php:base

        部署节点安装Docker与Docker-Compose及配置普通用户sudo

          1.安装Docker
          安装文档:https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu
          2.安装Docker-Compose
          # curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` -o
          /usr/local/bin/docker-compose
          # chmod +x /usr/local/bin/docker-compose
          3.赋予用户sudo权限
          # vi /etc/sudoers
          user ALL=(ALL) NOPASSWD:ALL

          Jenkins安装

            安装包下载: 
            http://mirrors.jenkins.io/war-stable/ http://maven.apache.org/download.cgi
            http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
            配置JDK和Maven环境变量:
            # tar zxvf jdk-8u45-linux-x64.tar.gz
            # mv jdk1.8.0_45 /usr/loca/jdk.18
            # tar apache-maven-3.5.0-bin.tar.gz
            # mv apache-maven-3.5.0 /usr/local/maven3.5
            # vi /etc/profile
            JAVA_HOME=/usr/local/jdk1.8 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar MAVEN_HOME=/usr/local/maven3.5 PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
            export JAVA_HOME CLASSPATH MAVEN_HOME PATH


            # tar zxvf apache-tomcat-8.0.46.tar.gz
            # cd apache-tomcat-8.0.46/webapps
            # rm -rf ./*
            # unzip /root/jenkins.war -d ROOT
            # ../bin/startup.sh

            Jenkins基本配置

              系统管理->系统设置:主要配置workspace目录,全局环境变量,邮件通知,其他插件配置等。
              系统管理->Global Tool Configuration:主要配置JDK、Maven等工具。
              在系统设置里面先配置好SSH连接各个部署节点信息,在创建项目中使用。



              文章转载自程序员雨衣,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论