制品是软件开发过程中产生的多种有形副产品之一,个人理解,比如前端build后产生的dist静态资源文件,安卓打包生成的apk文件,这些产物都可以认为是制品。
制品的使用可以非常简单。
比如下面的流水线Job。
第一步拉代码,仓库中存在一个名为Dockerfile
的文件。
第二步把文件存为制品。
#!groovy
pipeline {
agent any
stages {
stage('checkout') {
steps {
git 'https://git.dev.tencent.com/finley/angular-js.git'
archiveArtifacts 'Dockerfile'
}
}
}
}
然后在Jenkins 构建页面中就可以直接查看和下载制品
image.png
参数:
image.png
制品多了话需要管理,单靠Jenkins有点力不从心了,需要专门的制品管理软件,目前流行的有 Nexus Repository OSS 和 Artifactory 他们都提供免费的社区版和收费的专业版,安装可以使用Docker镜像,省时省力。
以Nexus为例,制品软件系统到底有啥用呢,通过官方文档,通过Nexus制品管理软件。有以下功能 可以方便的搭建使用自己的私有Docker仓库,Composer, NPM,Raw(任何文件格式) 等。 更好的文件分类,更好的角色权限控制 支持REST API 更好的备份恢复机制 所以个人觉得大公司很有必要建立的自己制品管理系统。
缺点: 自己搭建和维护,需要一定服务器运行成本
制品管理软件详细的使用本文不再展开,大家参照文档即可,大致流程是: 搭建制品仓库系统,Jenkins安装对应的插件,修改pipeline通过插件提供的指令上传制品到制品仓库。供系统项目或人员使用
如果只是为了Docker私有仓库,不用搭建 Nexus,阿里云,腾讯云等公有云提供的有类似服务而且是免费的。
image.png
https://help.sonatype.com/repomanager3/formats/docker-registry https://jfrog.com/open-source/#