製品是軟件開發過程當中產生的多種有形副產品之一,我的理解,好比前端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 構建頁面中就能夠直接查看和下載製品前端
參數:git
製品多了話須要管理,單靠Jenkins有點力不從心了,須要專門的製品管理軟件,目前流行的有Nexus Repository OSS 和 Artifactory 他們都提供免費的社區版和收費的專業版,安裝可使用Docker鏡像,省時省力。docker
以Nexus爲例,製品軟件系統到底有啥用呢,經過官方文檔,經過Nexus製品管理軟件。有如下功能 能夠方便的搭建使用本身的私有Docker倉庫,Composer, NPM,Raw(任何文件格式) 等。 更好的文件分類,更好的角色權限控制 支持REST API 更好的備份恢復機制 因此我的以爲大公司頗有必要創建的本身製品管理系統。瀏覽器
缺點: 本身搭建和維護,須要必定服務器運行成本緩存
製品管理軟件詳細的使用本文再也不展開,你們參照文檔便可,大體流程是: 搭建制品倉庫系統,Jenkins安裝對應的插件,修改pipeline經過插件提供的指令上傳製品到製品倉庫。供系統項目或人員使用bash
若是隻是爲了Docker私有倉庫,不用搭建Nexus,阿里雲,騰訊雲等公有云提供的有相似服務並且是免費的。服務器
最快的方法使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
獲取,登陸之後點擊頁面上方的齒輪按鈕進行設置。
建立一個私有倉庫的方法: 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 文檔
help.sonatype.com/repomanager… jfrog.com/open-source… yeasy.gitbooks.io/docker_prac…