建立auto build image

在docker hub中提供了一個服務可以跟Github連接,讓Github的commit可以auto build然後commit到docker hub中,透過這樣的方式的建置結果,會在docker search的結果部分的"AUTOMATED"中顯示"[OK]"。

$ docker search peihsinsu
NAME                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
peihsinsu/nodejs-runtime                                                    0                    [OK]
peihsinsu/nodejs                                                            0                    [OK]
peihsinsu/centos7           CentOS 7 with node.js, git environment          0
peihsinsu/haproxy           Base on CentOS7 to install haproxy and has...   0
peihsinsu/couchdb1_2                                                        0
peihsinsu/smtp2sendgrid                                                     0
peihsinsu/ubuntu14                                                          0
peihsinsu/bdutil                                                            0
peihsinsu/nodejs-express4                                                   0

如何來做到與Github連動的建置呢.. (除了Github, Docker Hub也可以與Bitbucket連接喔...)

前置條件

在開始之前,我們需要準備一些帳號與要建置的檔案...

  • Github帳號,並建立專案,且專案內包含有一個Dockerfile檔案
  • Docker Hub的帳號,並且在其中沒有與之後預計建置的image重複名稱的image

鏈結帳戶

在準備部分完成後,可以直接連接Docker Hub的Auto Build Page,來選擇要透過哪種Repository系統進行連接:

https://registry.hub.docker.com/builds/github/select/

並且透過他的Wizard,應該可以直接到達選定專案的頁面,這時候就可以挑選所在的專案進行連接...

Build from Github

此時我們的Github中有準備兩個檔案:

  • Dockerfile: Docker的建置腳本,用來建置Docker環境用
  • README.md: 專案的說明文件,一般用來描述操作與使用方式

Build from Github

等連接完成後,原則上需要有一些時間讓Docker Hub做建置動作。建置完成後,我們可以登入Docker Hub,在自己的Image列表中,可以看到跟github中project同名的image,project的詳細頁面可以看到一些特別的資訊...

README page

當專案具備README.md時候,在第一個頁籤的說明部分會使用README.md的內容做顯示

Docker Hub readme

Dockerfile page

這邊會直接顯示Dockerfile的內容,這個在一般非docker build而直接push上來的Image就看不到內容...

Docker Hub dockerfile

Build detail page

這邊提供build docker的一些紀錄資訊,可以供作日後維護參考

Docker Hub build detail

補充

感謝網友Ruei-Ci Wang的提醒,如果是在 github 直接 fork 過來的 repo, 透過 dockerhub 聯結的 autobuild 會什麼都沒有, 必須要至少 push 一次, dockerhub 才會 autobuild !

results matching ""

    No results matching ""