1 - 簡介
1.1 制品庫的概念
即構建過程的輸出物,包括軟件包,測試報告,應用配置文件等可在服務器上直接 運行或可查看二進制形式的文件,通常稱之為二進制軟件制品。
不同開發語言 所產生的制品的獲取、使用、共享方式不同,不同的制品倉庫能夠管理各自開發語言類型的二進制制品。
制品管理是對軟件研發過程中生成的產物的管理, 一般作為最終交付物完成發布和交付。所有的制品包,依賴組件均能夠納入統一 制品庫中統一管理。
制品庫應作為測試及生產部署的唯一可信制品來源。
1.2 JFrog Artifactory
目前全球唯一支持所有開發語言,任意維度的元數據檢索、跨語言正反向依賴分析,並同時擁有深度遞歸、支持多活異地災備的企業級、高可用二進制制品管理倉庫。
鏈接
- JFrog:https://jfrog.com/
- https://www.jfrog.com/confluence/
- https://jfrog.com/knowledge-base/
- JFrong中國:https://www.jfrogchina.com/
- JFrog中國 - CSDN: https://blog.csdn.net/wangqingjiewa/
下載
- JFrog Artifactory 開源版(代替 Nexus): http://www.jfrogchina.com/open-source/
- CLI 工具: https://www.jfrogchina.com/getcli/
- jfrog / artifactory: https://bintray.com/jfrog/artifactory
- jfrog / artifactory / jfrog-artifactory-oss-zip: https://bintray.com/jfrog/artifactory/jfrog-artifactory-oss-zip
生態環境
工具間的關系
1.3 功能列表
## 語言&工具支持
Maven、Docker、Bower(html&js)、Chef、Puppet、CocoaPods(IOS)、Conan(C/C++)、Debian、Ruby Gems、Git LFS、Gradle、Ivy、Npm、Nuget、Opkg、Php composer、Pypi、SBT、Vagrant(box)、Rpm、Generic(通用)
## 多 Docker 鏡像注冊中心
支持多 Docker 鏡像注冊中心,用戶可以做 Docker 鏡像的流水線 Promotion。
刪除 Docker 鏡像時不需要停服。
## 支持 REST API
全面覆蓋的 REST API。與 UI 松耦合,可以基於 REST API 實現自己的 UI。
## 元數據
支持自定義屬性以及屬性集到任何 Layout 的二進制文件上;
可以基於這些屬性進行過濾搜索,並且支持Restful 方式搜索;
跨地域遠程代理倉庫之間可以同步屬性,管理異地協同開發。
## CI 集成
Artifactory
收集所有構建相關環境信息。
收集發布以及依賴的模塊信息。
支持構建 Promotion 升級。
建立二進制文件和構建的關系,多維度管理二進制文件生命周期。支持可視化的正-反向依賴關系展示。
## Checksum 檢查
在上傳時檢查 Checksum,若發現該文件已經被上傳過,則不重復上傳。
若文件丟失 Checksum,會重新計算並記錄。
## 主動並發下載依賴
支持主動並發下載相關的依賴。例如 A依賴 B,B 依賴 C,Artifactory 在下載 A 的同時,會並發的下載 B 和 C。
## 任意全局查詢
提供 AQL(Artifactory Query Language)支持任何條件的查詢,包括排序,過濾,返回字段等等。
## 深度文件查詢
支持在任意可解壓文件里搜索類文件,並提供地址。例如:在任意 Jar 包里找到 .Class 文件。
## 倉庫數據統計
提供倉庫大小,實際存儲大小,文件數量,下載量,上傳者等統計
## 查看 Jar 文件
能夠查看 Jar文件里的任何內容,包括 Jar 文件里的源代碼。
## 倉庫復制
支持文件夾級別的文件實時復制。支持並發多地復制(Multi-Push)保證多地倉庫的一致性。
## 支持高可用
支持0宕機時間的高可用集群,並且可以自由水平擴展。支持 Active-Active 高可用。
## 數據庫存儲
安裝包默認綁定 Apache Derby。
支持MySQL,PostgreSQL,Oracle,MS SQL Server。
2 - Docker方式運行JFrog Artifactory
https://www.jfrog.com/confluence/display/RTF/Installing+with+Docker
Pull Latest Artifactory Docker Image
docker pull docker.bintray.io/jfrog/artifactory-oss
docker run \
--name artifactory \
-u root \
-d \
-p 8083:8083 \
-v artifactory_data:/var/opt/jfrog/artifactory \
-v /var/run/docker.sock:/var/run/docker.sock \
docker.bintray.io/jfrog/artifactory-oss
配置artifactory
通過 localhost:8083/artifactory 添加管理員密碼等操作,顯示artifactory已正確安裝;
- 設置管理員賬號: 使用默認的admin/password,以后再改
- 設置代理: 如無必要, 跳過
- 新建代碼倉庫: 選擇倉庫類型, 其余默認即可
通過在jenkins中安裝artifactory插件,並在系統管理中添加配置artifactory服務器,測試連接獲取到artifactory的版本。
3 - JFrog 公網倉庫
https://repo.jfrog.org/artifactory/webapp/
4 - JFrog Container Registry
https://www.jfrog.com/confluence/display/JFROG/JFrog+Container+Registry
JFrog Artifactory目前已經成為高可用,高並發 Docker 鏡像中心的首選方案.
JCR (JFrog Container Registry)是JFrog Artifactory 發布免費社區版Docker鏡像倉庫,支持 Docker ,Helm 和通用倉庫。
目前已支持免費下載和使用:
- https://jfrog.com/container-registry/
- https://jfrog.com/download-jfrog-container-registry/
- 重磅福利:JFrog Artifactory 發布免費社區版,支持 Docker ,Helm 和通用倉庫 – JCR: https://blog.csdn.net/wangqingjiewa/article/details/103292579
4.1 Docker images
docker pull docker.bintray.io/jfrog/artifactory-jcr:latest
- https://www.jfrog.com/confluence/display/JCR/Welcome+to+JFrog+Container+Registry
4.2 JFrog 容器鏡像倉庫功能
- 最穩定的 Docker 鏡像中心,服務眾多企業用戶。
- 支持 Docker ,Helm 和通用倉庫, 可以用於存儲任何類型的制品,例如.zip, .war, .tar等
- 支持本地/遠程/虛擬倉庫,能夠為所有研發團隊提供統一的倉庫地址
- 支持豐富的Docker鏡像元數據,用於標識和記錄Docker 鏡像的生命周期信息
- 支持鏡像的升級(Promotion)
- 支持實時鏡像物理刪除
- 支持本地部署和 SaaS 版本
4.3 功能對比
5 - 參考信息
- 如何使用工具鏈搭建企業級CICD流水線 https://www.jianshu.com/p/fdb7aaeb043b
- 爛泥:jfrog artifactory的安裝與使用 https://www.ilanni.com/?p=14689