Jenkins实现推送镜像到远程服务器私有仓库

一、在阿里云容器服务中创建私有仓库

在这里插入图片描述

二、jenkinsfile代码如下

//写流水线的脚本(声明式、脚本式)
pipeline{
    //全部的CICD流程都写在这里

    //任何一个代理可用就执行
    agent any

    //定义一些环境信息
    environment {
        ALIYUN_SECRET=credentials("aliyun-docker-repo")
    }

    //定义流水线的加工流程
    stages{
        //流水线的所有阶段
        stage('环境检查'){
            steps {
                echo "正在检查基本信息"
            }
        }
        //1、编译
        //一般双引号是变量,单引号用于常量
        stage('编译'){
            steps {
                //要做的所有事情
                echo "编译..."
            }
        }
        //2、测试
        stage('测试'){
            steps {
                //要做的所有事情
                echo "测试..."
            }
        }
        //3、打包
        stage('打包'){
            steps {
                //要做的所有事情
                echo "打包..."
                sh 'docker version'
                sh 'pwd && ls -alh'
                sh 'docker build -t golang-demo .'
            }
        }
        //3.95
        stage("推送镜像"){
            input {
                message "需要推送远程镜像吗?"
                ok "需要"
                parameters {
                    string(name :'APP_VER',defaultValue:'v1.0',description:'生产环境需要部署的版本')
                }
            }

            steps{
               // message: '需要推送远程镜像吗?', ok: '需要', parameters: [text(defaultValue: 'v1.0', description: '生产环境需要部署的版本', name: 'APP_VER')]


                //sh 'docker login --username=jacson69 registry.cn-qingdao.aliyuncs.com'
                sh "docker login -u ${ALIYUN_SECRET_USR} -p ${ALIYUN_SECRET_PSW} registry.cn-qingdao.aliyuncs.com"
                sh "docker tag golang-demo registry.cn-qingdao.aliyuncs.com/docker_demo1/devops_demo:${APP_VER}"
                sh "docker push registry.cn-qingdao.aliyuncs.com/docker_demo1/devops_demo:${APP_VER}"
            }
        }

        //4、部署
        stage('部署'){
            steps {
                //要做的所有事情
                echo "部署..."
                //删除
                sh 'docker rm -f devops-demo'
                //运行docker镜像,并将容器名设置为devops-demo
                sh 'docker run -d -p 8888:8090 --name devops-demo golang-demo'
            }
            post {
                failure {
                    // One or more steps need to be included within each condition's block.
                echo "炸了。。。"
                }
                success {
                    echo "成了。。。"
                }
            }
        }
    }
}

三、运行流水线

推送镜像到阿里云私有仓库,输入版本即可推送

在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值