怎麼在 Docker Hub 混用 Ansible 自動建置 Docker image?
Last updated
Last updated
上章「28. 怎麼混用 Ansible 建置 Docker image?」凍仁簡化了建置 (build) image 的流程,雖可降低維護成本,但是當維護的 image 一多,就顯得開發機不夠力。
一般企業內部會自行架設 Jenkins CI 或 GitLab CI 等服務,把建置 images 的工作移至 build server 上。
以下凍仁將藉由 chusiang/vim-and-vi-mode
image 講解 Docker Hub 的 Auto-build 技巧。
Docker Hub 是官方維護的 image 市集 (marketplace)。我們可以在網站上取得 Ubuntu, Nginx, MySQL 等官方和社群成員所維護的 image。
chusiang/vim-and-vi-mode
是藉由 Dockerfile 和 chusiang.vim-and-vi-mode
role 建置的 Docker image,上章已提過該 Role,在此就不多加詳述。
Docker Hub: https://hub.docker.com/r/chusiang/vim-and-vi-mode/
Galaxy: https://galaxy.ansible.com/chusiang/vim-and-vi-mode/
GitHub: https://github.com/chusiang/vim-and-vi-mode.ansible.role/
目前支援的 Linux 發行版本有:
ubuntu14.04, lastest
ubuntu16.04
debian7
debian8
centos6
centos7
建立 Dockerfile 的前置作業凍仁已在上章介紹過,這裡就不多提了。
登入 Docker Hub。
注意!按下送出後就不能變更名稱了!
Type:依 branch 或 tag 進行建置。
Name:設置 branch 和 tag 的名稱。
Dockerfile Location:Dockerfile 的存放路徑。
Docker Tag Name:設置 Docker tag 名稱。
在還末推送提交 (push commit) 之前,可先藉由右方的 Trigger 進行手動 build image。
以上就是 Docker Hub 的 Auto-build 設置。現在我們除了可以用一份 Ansible Roles 進行組態設定,還可以從 Docker Hub 取得 build 好的 Docker image,真是一舉兩得啊!
自從有了這些 Docker images,不管是自己要跨 Linux 平台測環境,還是幫 Vim Taiwan User Group 社群成員的 vimrc 除錯都有很大的幫助呢!
點擊右上角的 Create (建立),並點擊 Create Automated Build (自動建置)。
選擇 GitHub。
找到要 Auto-build 的 GitHub repository。
選擇好 repository 後,可以在 Name 一欄設定名稱。
進入 Build Settings 頁面設置 build image 相關設定。
在 Build Details 頁面裡可以觀看建置狀態。
在 Tags 頁面可以看到這個 image 有哪些 tag 可以用。
在 Dockerfile 頁面可以看到內容與上章介紹的雷同。
現在,我們可以從 Docker Pull Command 取得下載 image 的指令,並可從 Source Repository 取得原始碼。