11-Jenkins

作者: 紫荆秋雪_文 | 来源:发表于2021-12-13 15:54 被阅读0次

    一、Jenkins安装

    docker run \
    -u root \
    -d \
    -p 8080:8080 \
    -p 50000:50000 \
    -v jenkins-data:/var/jenkins_home \
    -v /etc/localtime:/etc/localtime:ro \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --restart=always \
    jenkinsci/blueocean
    
    • 在run的时候设置时区
    -v /etc/localtime:/etc/localtime:ro \
    
    • jenkinsci/jenkins 是没有 blueocean插件的,得自己装
    • jenkinsci/blueocean:带了blueocean插件的
    • /var/run/docker.sock 表示 Docker 守护程序通过其监听的基于 Unix 的套接字。该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信,如果jenkinsci/blueocean容器需要实例化其他 Docker 容器,则该守护进程时必需的。如果运行声明式管道,其语法包含agent部分用docker

    二、启动Jenkins

    通过 ip+端口 方式用浏览器访问Jenkins

    image.png
    • 默认密码
    • 通过Jenkins挂载目录
    docker inspect 容器ID
    
    • 再通过图片提示显示进入secrets
    • 查看 cat initialAdminPassword

    三、创建流水线项目

    • 创建项目 创建项目.png
    • 配置Jenkins链接远程仓库 配置Jenkins链接远程仓库.png
    • Jenkinsfile文件,以后所有的操作都写在Jenkinsfile中 项目中创建Jenkinsfile.png
    • 如果没有项目中没有 Jenkinsfile 文件,直接构建时会报错 找不到 Jenkinsfile 文件.png

    四、流水线语法

    pipeline {
        // 任何代理
        agent any
    
        //  执行任务在这里
        stages {
    
            //  阶段1
            stage('Build') {
                steps {
                    // 当前所在位置
                    sh 'pwd && ls -alh'
                    echo'编译项目'
                    //  当前可用的环境信息
                    sh 'printenv'
                }
            }
            //  阶段2
            stage('Test'){
                steps {
                    // 当前所在位置
                    sh 'pwd && ls -alh'
                    echo '测试项目'
                    //  当前可用的环境信息
                    sh 'printenv'
                }
            }
            //  阶段3
            stage('Deploy') {
                steps {
                    // 当前所在位置
                    sh 'pwd && ls -alh'
                    echo '部署项目'
                    //  当前可用的环境信息
                    sh 'printenv'
                }
            }
        }
    }
    
    • Jenkins的家目录 /var/jenkins_home 已经挂载到宿主机,需要自己通过inspect 命令来找到Jenkins家目录
    JENKINS_HOME=/var/jenkins_home
    
    • 每个项目的工作空间,项目之间通过项目名称来彼此隔离
    WORKSPACE=/var/jenkins_home/workspace/Jenkins-pipeline
    
    • 项目的临时目录
    WORKSPACE_TMP=/var/jenkins_home/workspace/Jenkins-pipeline@tmp
    

    五、远程自动构建触发

    代码推送到远程仓库后,自动构建

    1、重新配置Jenkins项目 创建一个身份令牌.png

    2、在远程仓库(GitHub)新增WebHook

    • 这里的URL就是1中红色框中的URL
      仓库中配置WebHook.png

    3、添加完成后在GitHub测试发现 403 没有权限,这时需要为远程触发创建一个Jenkins用户(如:jenkins)

    • 创建一个Jenkins用户,用来远程触发构建
    • 为jenkins用户创建一个 API Token 为jenkins用户配置Token.png

    4、修改GitHub中WebHook中URL地址

    http://[Jenkins用户名]:[Jenkins用户名的Token]@[JENKINS_URL]/job/Jenkins-pipeline/build?token=[省份令牌]
    

    相关文章

      网友评论

        本文标题:11-Jenkins

        本文链接:https://www.haomeiwen.com/subject/fysjfrtx.html