Jenkins2 学习系列17 -- 制品管理

制品是软件开发过程当中产生的多种有形副产品之一,我的理解,好比前端build后产生的dist静态资源文件,安卓打包生成的apk文件,这些产物均可以认为是制品。 制品的使用能够很是简单。 好比下面的流水线Job。 第一步拉代码,仓库中存在一个名为Dockerfile的文件。 第二步把文件存为制品。html

#!groovy

pipeline {
    agent any
    stages {
        stage('checkout')  {
            steps {
               git 'https://git.dev.tencent.com/finley/angular-js.git'
               archiveArtifacts 'Dockerfile'
            }
        }        
    }
}
复制代码

而后在Jenkins 构建页面中就能够直接查看和下载制品前端

image.png

archiveArtifacts 指令

参数:git

  • artifacts 只有这一个参数是必填的,须要归档的文件路径,能够是Ant文件风格的路径表达式
  • fingerprint | 布尔 | 是否对归档文件进行签名
  • excludes 须要排除的文件路径,能够是Ant文件风格的路径表达式
  • onlyIfSuccessful | 布尔 | 只在构建成功时进行归档
  • allowEmptyArchive | 布尔 | 若是归档文件没有返回任何结果,不构建失败

image.png

制品管理软件

制品多了话须要管理,单靠Jenkins有点力不从心了,须要专门的制品管理软件,目前流行的有Nexus Repository OSSArtifactory 他们都提供免费的社区版和收费的专业版,安装可使用Docker镜像,省时省力。docker

以Nexus为例,制品软件系统到底有啥用呢,经过官方文档,经过Nexus制品管理软件。有如下功能 能够方便的搭建使用本身的私有Docker仓库,Composer, NPM,Raw(任何文件格式) 等。 更好的文件分类,更好的角色权限控制 支持REST API 更好的备份恢复机制 因此我的以为大公司颇有必要创建的本身制品管理系统。浏览器

缺点: 本身搭建和维护,须要必定服务器运行成本缓存

制品管理软件详细的使用本文再也不展开,你们参照文档便可,大体流程是: 搭建制品仓库系统,Jenkins安装对应的插件,修改pipeline经过插件提供的指令上传制品到制品仓库。供系统项目或人员使用bash

若是只是为了Docker私有仓库,不用搭建Nexus,阿里云,腾讯云等公有云提供的有相似服务并且是免费的。服务器

使用 nexus3 搭建 私有Docker仓库

最快的方法使ui

docker run -d --name nexus3 --restart=always \
    -p 8081:8081 \
    --mount src=nexus-data,target=/nexus-data \
    sonatype/nexus3
复制代码

等待 3-5 分钟,若是 nexus3 容器没有异常退出,那么你可使用浏览器打开 http://YourIP:8081 访问 Nexus 了。阿里云

第一次启动 Nexus 的默认账号是 admin 密码是 经过 docker exec -it nexus3 cat /nexus-data/admin.password 获取,登陆之后点击页面上方的齿轮按钮进行设置。

image.png

建立一个私有仓库的方法: Repository->Repositories 点击右边菜单 Create repository 选择 docker (hosted)

Name: 仓库的名称 HTTP: 仓库单独的访问端口 Enable Docker V1 API: 若是须要同时支持 V1 版本请勾选此项(不建议勾选)。 Hosted -> Deployment policy: 请选择 Allow redeploy 不然没法上传 Docker 镜像。 其它的仓库建立方法请各位本身摸索,还能够建立一个 docker (proxy) 类型的仓库连接到 DockerHub 上。再建立一个 docker (group) 类型的仓库把刚才的 hosted 与 proxy 添加在一块儿。主机在访问的时候默认下载私有仓库中的镜像,若是没有将连接到 DockerHub 中下载并缓存到 Nexus 中。

详细内容请自行查看 Nexus 文档

image.png

参考

help.sonatype.com/repomanager… jfrog.com/open-source… yeasy.gitbooks.io/docker_prac…

相关文章
相关标签/搜索