Jenkins-好程序员-使用Docker构建并推送到私有仓库

一、安装插件

docker 用于使用 Docker 容器进行构建步骤
docker-pipeline 用于使用项目根目录下的 Dockerfile 构建镜像,并上传到镜像仓库

用于在 Docker 镜像内部实现构建步骤,而不是在 Jenkins 节点本地。

例如像下面这样

docker.image('maven:3.3.3-jdk-8').inside {
  git '…your-sources…'
  sh 'mvn -B clean install'
}

上面是一个完整的管道脚本。 inside将要:

1 自动获取代理和工作区(不需要额外的node块)。

2 将请求的映像拉到Docker服务器(如果本地仓库没有此镜像)。

3 启动运行该映像的容器。

4 使用相同的文件路径将Jenkins工作空间作为“卷”安装在容器内。

5 运行您的构建步骤。像这样的外部进程sh将被包装,docker exec因此它们将在容器内运行。其他步骤(例如测试报告)未经修改即可运行:它们仍然可以访问由构建步骤创建的工作空间文件。

6 在构建完成后,停止容器并丢弃其消耗的所有存储。

7 记录该构建使用了指定图像的事实。这将解锁其他Jenkins插件中的功能:您可以使用映像跟踪所有项目,或者将更新的映像推送到Docker注册表时将该项目配置为自动触发。如果您使用Docker Traceability插件,您还可以查看Docker服务器上映像部署的历史记录。

在这里插入图片描述在这里插入图片描述

二、创建凭据

这里是直接安装生产环境来作为背景做练习,企业中往往会使用私用镜像仓库 Harbor。

在这里需要创建连接到 Harbor 仓库的凭据,就是用户名和密码。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

配置 docker

需要在使用 docker 的服务器上设置如下内容

[root@bj-gitlab ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"],
  "insecure-registries": ["https://192.168.80.201"]
}

registry-mirrors 镜像加速器
insecure-registries Harbor 仓库

之后重启 docker

三、编写 Pipeline

pipeline {
  // 设置全局环境变量
  environment {
    url = 'ssh://git@gitlab.shark.com:/root/simple-java-maven-docker-app.git'

  }
  // 全局代理是 none,表示全局上不设置任何代理,需要在每个步骤中设置代理
  agent none
  stages {
    // 拉取代码并构建
    stage('pull code and build') {
      // 此阶段的代理: docker 容器
      agent {
        docker {
        image 'maven:3-alpine'
        args '-v $HOME/.m2:/root/.m2'
        // 自定义的工作空间
        customWorkspace "/opt/"
        }
      }
      steps {
        // 拉取代码
        git(url: env.url, branch: 'master', credentialsId: 'gitlab')
        // 构建
        sh 'mvn -B clean package'
      }
    }
    // 构建镜像
    stage("build image"){
      agent {
        node {
          label 'master'
          customWorkspace "/opt/"

        }
      }
      steps {
        script {
          docker.withRegistry('http://myharbor.shark.com:80', 'harbor') {
            docker.build('app-java/myapp').push('latest')
          }
        }
      }
    }
  }
}

使用凭据

在这里插入图片描述

和 Gialab 深度集成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shark_西瓜甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值