zoukankan      html  css  js  c++  java
  • 容器 之搭建 jenkins ci 平台

    1 部署 gitlab

    docker run -d 
      --name gitlab 
      -p 8443:443 
      -p 80:80 
      -p 9998:22 
      -v $PWD/config:/etc/gitlab 
      -v $PWD/logs:/var/log/gitlab 
      -v $PWD/data:/var/opt/gitlab 
      -v /etc/localtime:/etc/localtime 
      lizhenliang/gitlab-ce-zh:latest

    访问地址: http://ip

    用户名 root  密码 刚设置的

    2 创建项目 提交测试代码

    gitlab 创建一个仓库地址

    # 克隆仓库地址

    git clone http://10.0.0.70/root/java-demo.git

    # 解压测试代码

    #提交代码

    3 部署 Harbor

    https://www.cnblogs.com/augustyang/p/11912688.html

    4 jenkins 安装

    # 安装jdk

    # tar zxvf jdk-8u45-linux-x64.tar.gz
    ln -s /usr/local/jdk1.8.0_45/   /usr/local/jdk

    #安装maven

    # tar zxf apache-maven-3.5.0-bin.tar.gz
    ln -s /usr/local/apache-maven-3.5.0/   /usr/local/maven

    docker run -d --name jenkins -p 80: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/apache-maven-3.5.0:/usr/local/maven 
    -v /usr/local/jdk1.8.0_45:/usr/local/jdk 
    -v /etc/localtime:/etc/localtime 
    --name jenkins jenkins/jenkins:lts

    #使用/root/.ssh中私钥访问gitlab

    ssh-keygen -t rsa
    cat .ssh/id_rsa.pub

    #安装 git pipeline 插件

    # 配置国内镜像地址 

    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

    5 jenkins 发布

    ① Pipline 脚本

    #!/usr/bin/env groovy
    
    def registry = "10.0.0.60"
    def project = "dev"
    def app_name = "java-demo"
    def image_name = "${registry}/${project}/${app_name}:${Branch}-${BUILD_NUMBER}"
    def git_address = "http://10.0.0.70/root/java-demo.git"
    def docker_registry_auth = "5f86fdc6-dc2f-4cd5-9740-a7bbf6b9b1f9"
    def git_auth = "db953d02-d4f3-4acc-837b-ee580e71901b"
    
    pipeline {
        agent any
        stages {
            stage('拉取代码'){
                steps {
                  checkout([$class: 'GitSCM', branches: [[name: '${Branch}']], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
                }
            }
    
            stage('代码编译'){
               steps {
                 sh """
                    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}
                  """
                }
            }
        }
    }

    添加选择的   This project is parameterized -->  String  parameter

    ② 添加凭据

    1 添加拉取git代码凭据,并获取id替换到上面git_auth变量值。

    2 添加拉取harbor镜像凭据,并获取id替换到上面docker_registry_auth变量值。

  • 相关阅读:
    实用机器人设计(六)-建图,导航和路径规划
    实用机器人设计(五)-机器人电机功率选择和减速箱传动比设计
    实用机器人设计(四)-电机和驱动系统基础原理
    实用机器人设计(三)-计算机视觉
    Git 提交文件到Github
    爬虫框架Scrapy
    scrapy终端与核心组件
    图像识别与文字处理
    存储爬虫数据--Mongodb
    并发下载
  • 原文地址:https://www.cnblogs.com/augustyang/p/11913523.html
Copyright © 2011-2022 走看看