zoukankan      html  css  js  c++  java
  • docker 搭建jenkins环境

     一   准备JDK和Maven环境

    在宿主机上准备环境  需要maven 和jdk

    tar zxvf jdk-8u45-linux-x64.tar.gz
    mv jdk1.8.0_45 /usr/local/jdk
    tar zxf apache-maven-3.5.0-bin.tar.gz
    mv apache-maven-3.5.0 /usr/local/maven
    

     配置docker 加速

    [root@centos7 ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://abcd1234.m.daocloud.io
    [root@centos7 ~]# systemctl restart docker
    

      

    使用docker安装jenkins

    docker run -d --name jenkins -p 88:8080 -p 50000:50000 -u root 
    -v /opt/jenkins_home:/var/jenkins_home 
    -v /var/run/docker.sock:/var/run/docker.sock 
    -v /usr/bin/docker:/usr/bin/docker 
    -v /usr/local/maven:/usr/local/maven 
    -v /usr/local/jdk:/usr/local/jdk 
    -v /etc/localtime:/etc/localtime 
    --name jenkins jenkins/jenkins:lts

    安装完成之后进入jenkins 选择插件来安装

    然后点击无  先不安装插件

    接着设置账号密码 然后登录jenkins

    二 安装插件

      jenkins安装插件一直是个问题,接下来介绍一种终极办法

      点击   Manage Jenkins  --》pluginManager--》advanced---》Update Site  

      url  https://mirrors.tuna.tsinghua.edu.cn/update-center.json    submit

       这个的修改主要是加速索引

    修改插件下载地址

      cd /opt/jenkins_home/updates

    sed -i 's/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json && sed -i 's/http://www.google.com/https://www.baidu.com/g' default.json
    

      这是哥坑 在新版本中需要新的修改办法 需要注意

    sed -i 's/https://updates.jenkins.io/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json

      重启jenkins

     docker restart jenkins
    

      

    安装 git 以及pipeline 发现速度爆炸。。

    发现还是有部分插件有问题  直接去清华源下载

    放到 

    /opt/jenkins_home/plugins/

    下面地址为常用的插件

    https://www.chenleilei.net/soft/jenkins_plugins.tar.gz

    三 利用jenkins 构建一个完全的自动化流程

    首先 在jenkins上配置认证   credentials  Add Credentials

    需要配置2 个 一个是连接harbol的 另外一个是连接gitlab的

    设置默认的Branch (这个是可选的,如果设置了那么下一次构建就会展示这个默认的,但是 依然是可以自己修改的)如下图

    撰写pipeline   以下的pipeline需要注意。。  Branch 就是上一步设置的。因为设置了变量 所以构建的名字是   Build with Parameters

    docker_registry_auth   git_auth 就是账号密码输入完成之后产生的字符串,可以点击update 查看
    #!/usr/bin/env groovy
    
    def registry = "192.168.31.70"
    def project = "dev"
    def app_name = "java-demo"
    def image_name = "${registry}/${project}/${app_name}:${Branch}-${BUILD_NUMBER}"
    def git_address = "http://192.168.31.70:9999/root/java-demo.git"
    def docker_registry_auth = "796b3651-c0b1-4429-b32a-288e0fa66c77"
    def git_auth = "35ad5e6a-d132-4cac-9d74-d65223a2d8c0"
    
    pipeline {
        agent any
        stages {
            stage('拉取代码'){
                steps {
                  checkout([$class: 'GitSCM', branches: [[name: '${Branch}']], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
                }
            }
    
            stage('代码编译'){
               steps {
                 sh """
                    pwd
                    ls
                    JAVA_HOME=/usr/local/jdk
                    PATH=$JAVA_HOME/bin:/usr/local/maven/bin:$PATH
                    mvn clean package -Dmaven.test.skip=true
                    """ 
               }
            }
    
            stage('构建镜像'){
               steps {
                    withCredentials([usernamePassword(credentialsId: "${docker_registry_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
                    sh """
                      echo '
                        FROM ${registry}/library/tomcat:v1
                        LABEL maitainer lizhenliang
                        RUN rm -rf /usr/local/tomcat/webapps/*
                        ADD target/*.war /usr/local/tomcat/webapps/ROOT.war
                      ' > Dockerfile
                      docker build -t ${image_name} .
                      docker login -u ${username} -p '${password}' ${registry}
                      docker push ${image_name}
                    """
                    }
               } 
            }
    
            stage('部署到Docker'){
               steps {
                  sh """
                  REPOSITORY=${image_name}
                  docker rm -f tomcat-java-demo |true
                  docker container run -d --name tomcat-java-demo -p 88:8080 ${image_name}
                  """
                }
            }
        }
    }
    

      

    注意:默认的maven 是使用国外的源 可以修改成国内的

     

  • 相关阅读:
    VS2008编写MFC程序--使用opencv2.4()
    November 02nd, 2017 Week 44th Thursday
    November 01st, 2017 Week 44th Wednesday
    October 31st, 2017 Week 44th Tuesday
    October 30th, 2017 Week 44th Monday
    October 29th, 2017 Week 44th Sunday
    October 28th, 2017 Week 43rd Saturday
    October 27th, 2017 Week 43rd Friday
    October 26th, 2017 Week 43rd Thursday
    October 25th, 2017 Week 43rd Wednesday
  • 原文地址:https://www.cnblogs.com/ZFBG/p/12843282.html
Copyright © 2011-2022 走看看