Centos7使用docker安装Jenkins(含pipeline脚本语句)

一、下载Jenkins

docker pull jenkins/jenkins:lts

二、启动Jenkins

docker run \
  -u root \
  --rm \
  -d \
  -p 8081:8080 \
  -p 50000:50000 \
  -v /root/docker/jenkins/var/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /usr/bin/docker:/usr/bin/docker \
  -v /usr/lib64/libltdl.so.7:/usr/lib/libltdl.so.7 \
  --name jenkins \
  jenkins/jenkins:lts

三、配置镜像加速器

cd /root/docker/jenkins/var/jenkins_home/
vi hudson.model.UpdateCenter.xml

目录是启动时挂载的目录,然后将url修改https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json ,内容如下:

四、验证Jenkins

ip + 端口  等待一段时间

http://192.168.32.16:8081

等待之后就是登录界面,docker logs -f jenkins 可以查看启动时的临时密码:

 

继续安装插件,网络问题,插件安装堪忧啊~~后续使用还是得将插件 安装好。

五、配置jenkins中文模式

Jenkins----基于 CentOS 或 Docker 安装部署Jenkins并完成基础配置_centos7 docker jenkins-CSDN博客

六、pipeline脚本语句

pipeline {
    agent any
    
    environment {
        NAME = 'CXB' // 全局变量,会在所有的stage中生效
        //AWS_ACCESS_KEY_ID = credentials('txt1')
        //AWS_SECRET_ACCESS_KEY = credentials('txt2')
    }
    
    options {
        timeout(time: 1, unit: 'HOURS') //超时时间1小时,如果不加unit参数默认为1分
        timestamps() 
        buildDiscarder(logRotator(numToKeepStr: '3'))  //保留三个历史构建版本
        quietPeriod(10) //  流水线静默期,也就是触发流水线后等待一会在执行。 注意手动触发的构建不生效
        //retry(3) // 流水线失败重试次数
    }
    
    parameters {
        string(name: 'DEPLOY_ENV', defaultValue: 'st', description: '执行构建时需要手动配置字符串类型参数,之后赋值给变量')
        text(name: 'DEPLOY_TEXT', defaultValue: 'One\nTwo\nThree\n', description: '执行构建时需要提供文本参数,之后赋值给变量')
        booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: '布尔型参数')
        choice(name: 'CHOICES', choices: ['one', 'two', 'three'], description: '选择形式列表参数')
        //imageTag(name: 'DOCKER_IMAGE', image:  'kubernetes/kubectl', filter: '.*', defaultTag: '', registry: 'https://192.168.32.16', credentialId: 'harbor-account', tagOrder: 'NATURAL', description: '获取镜像名称与tag')
        gitParameter(name: 'BRANCH', branch: 'main', branchFilter: 'origin/(.*)', defaultValue: 'main', description: 'Branch for build and deploy, 获取git仓库分支列表,必须有git引用', quickFilterEnabled: false, selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH')
        
    }
    
    triggers {
        cron('H */10 * * 1-5')   //周一到周五每隔四个小时执行一次
        //cron('H/2 * * * *')   //每隔2分钟执行一次
        //cron('H * * * *')   //每隔1小时执行一次
        //目前支持的状态有 SUCCESS、UNSTABLE、FAILURE、NOT_BUILT、ABORTED 等。
        //upstream(upstreamProjects: 'Build', threshold: hudson,model,Result.SUCCESS)  //当env构建成功时构建这个流水线
    }
    
    stages {
        stage("Build") {
            environment { // 定义在stage 中的变量只会在当前stage生效
                MY_URL = "WWW.BAIDU.COM"
            }
            agent {
                docker "maven:3-alpine"
            }
            
            input {
                message "还继续么?"
                ok "继续"
                submitter "alice,bob"
                parameters {
                    string(name: 'PERSON', defaultValue: 'Mr Jenkins',  description: 'who should say  hello')
                }
            }
            
            steps {
                //echo "${AWS_ACCESS_KEY_ID}"
                //echo "${AWS_SECRET_ACCESS_KEY}"
                echo 'hello maven'
                sh 'mvn -version'
                echo "${MY_URL}"
                echo "${NAME}"
                
                echo "hello,${PERSON}, nice to meet you."
                
                
                echo "$env"
                echo "$env.BUILD_ID"
                echo "$env.BUILD_NUMBER"
                echo "$env.BUILD_TAG"
            }
        }
        
        stage('Git') {
            steps {
                git branch: "${BRANCH}", credentialsId: 'ebe42f70-146f-4a4b-8090-eded24a77173', url: 'https://gitlab.e-ai-edu.com/zswl-developer/bi/deepbi.git' //使用gitParameter,必须有这个
            }
        }
        
        stage('Test') {
            agent { 
                docker 'openjdk:8-jre' 
            }
            //options {   //定义在这里这对这个stage生效
            //    timeout(time: 2, unit: 'SECONDS') //超时时间2秒
            //    timestamps()                     //所有输出每行都会打印时间戳
            //    retry(3)    //流水线失败后重试次数
            //}
            steps {
                echo 'Hello, JDK'
                sh 'java -version'
                echo "${NAME}"
                sh "env"
            }
        }
        
        stage('When') {
            when {
                anyOf {
                    branch 'main' //多分支流水线,分支为才会执行。
                    environment name: 'DEPLOY_ENV', value: 'st'
                }
            }
            steps {
                echo 'Deployinng 66666'
            }
        }
    }
    
    post {
        success {
            echo 'success 1234'
        }
        failure {
            echo 'failure 5678'
        }
        always {
            echo 'i will always say 999'
        }
    }
}

史上最全 Jenkins Pipeline流水线详解 - 知乎

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要在CentOS 7上使用Docker安装Jenkins,您可以按照以下步骤操作: 1. 首先,确保您的CentOS 7系统已安装Docker。如果没有安装,请按照以下步骤安装Docker: ``` sudo yum update -y sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker ``` 2. 确保Docker已正确启动后,可以使用以下命令检查其状态: ``` sudo systemctl status docker ``` 3. 创建一个Docker容器来运行Jenkins。您可以使用以下命令创建并运行一个名为"my-jenkins"的容器: ``` sudo docker run -d -p 8080:8080 -p 50000:50000 --name my-jenkins jenkins/jenkins:lts ``` 这将从Docker Hub上的Jenkins镜像创建一个新容器,并将容器的8080端口映射到主机的8080端口,以及50000端口用于Jenkins代理。 4. 容器启动后,可以使用以下命令查看容器日志并获取初始管理员密码: ``` sudo docker logs my-jenkins ``` 在日志中,搜索类似于"Please use the following password to proceed to installation"的行,后面会跟着一个密码。复制该密码。 5. 使用浏览器访问`http://your_server_ip:8080`,将"your_server_ip"替换为您的服务器的实际IP地址。 6. 在Jenkins界面中,粘贴刚刚复制的密码,并继续安装过程。 7. 安装完成后,您可以设置Jenkins的管理员账号和密码,并根据需要进行其他配置。 这样,您就成功在CentOS 7上使用Docker安装Jenkins。希望对您有所帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值