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…

相關文章
相關標籤/搜索