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 是使用国外的源 可以修改成国内的

     

  • 相关阅读:
    Windows10如何添加开机启动项
    selenium自动化文件上传、文件下载
    windows下创建虚拟环境
    selenium 处理js日历控件
    selenium鼠标和键盘事件
    selenium绕过某宝验证,手动验证滑块
    python国内镜像源
    Linux下jenking安装
    发送邮件
    基于python的selenium两种文件上传操作
  • 原文地址:https://www.cnblogs.com/ZFBG/p/12843282.html
Copyright © 2011-2022 走看看