建立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,應該可以直接到達選定專案的頁面,這時候就可以挑選所在的專案進行連接...
此時我們的Github中有準備兩個檔案:
- Dockerfile: Docker的建置腳本,用來建置Docker環境用
- README.md: 專案的說明文件,一般用來描述操作與使用方式
等連接完成後,原則上需要有一些時間讓Docker Hub做建置動作。建置完成後,我們可以登入Docker Hub,在自己的Image列表中,可以看到跟github中project同名的image,project的詳細頁面可以看到一些特別的資訊...
README page
當專案具備README.md時候,在第一個頁籤的說明部分會使用README.md的內容做顯示
Dockerfile page
這邊會直接顯示Dockerfile的內容,這個在一般非docker build而直接push上來的Image就看不到內容...
Build detail page
這邊提供build docker的一些紀錄資訊,可以供作日後維護參考
補充
感謝網友Ruei-Ci Wang的提醒,如果是在 github 直接 fork 過來的 repo, 透過 dockerhub 聯結的 autobuild 會什麼都沒有, 必須要至少 push 一次, dockerhub 才會 autobuild !