Docker Hub上的自己主動化構建
關於自己主動化構建
自己主動化構建是一個特殊的功能,它同意您在 Docker Hub 上使用構建集群,依據指定的 Dockerfile 或者 GitHub 、 BitBucket 倉庫(或環境)來自己主動創建鏡像。該系統將從倉庫復制一份,並依據以倉庫為環境的 Dockerfile 的描寫敘述構建鏡像。
由此產生的鏡像將被上傳到注冊表,而且自己主動生成標記。
自己主動化構建有很多優勢:
- 你的自己主動化構建項目一定是准確依照預期構建的
- 在 Docker Hub 注冊表上,不論什么擁有你倉庫訪問權限的用戶都樂意瀏覽
Dockerfile - 自己主動化構建保證了你的倉庫總是最新的
自己主動化構建支持 GitHub 和 BitBucket 的私有和公有的倉庫。
要使用自己主動化構建,你必須擁有經過驗證有效的 Docker Hub 賬戶和 GitHub/Bitbucket 賬戶。
設置GitHub自己主動化構建
首先,你須要將 GitHub 賬戶鏈接到你的 Docker Hub 賬戶,以同意注冊表查看你的倉庫。
注:眼下我們須要有讀寫權限以建立 Docker Hub 和 GitHub 的掛鈎服務。這是GitHub管理權限的方式,我們別無選擇。抱歉!我們將保護您的賬戶及隱私,確保不會被他人非法獲取。
開始構建!登錄到你的 Docker Hub 賬戶。點擊屏幕右上方的 "+ Add Repository" button,選擇自己主動化構建。
選擇GitHub服務
然后依照說明授權和連接你的 GitHub 賬戶到 Docker Hub。
連接成功后,你就能夠選擇用來自己主動化構建的倉庫了。
創建一個自己主動化構建項目
你能夠用你的 Dockerfile 從你的公共或者私有倉庫創建一個自己主動化構建項目。
GitHub子模塊
假設你的 GitHub 倉庫包括了私有子模塊的連接,你須要在 Docker Hub 上加入部署秘鑰。
部署秘鑰位於自己主動化構建主頁的 “Build Details” 菜單。訪問設置 GitHub 倉庫的頁面,選擇 “Deploy keys” 來加入秘鑰。
| Step | Screenshot | Description |
|---|---|---|
| 1. | ![]() |
你的自己主動化構建部署秘鑰位於 “Build Details” 菜單的 “Deploy keys” 下。 |
| 2. | ![]() |
在你的 GitHub 子模塊倉庫設置頁。加入部署秘鑰。 |
GitHub組織
一旦你的組織成員身份設置為公開,相應的 GitHub 組織狀態便會被公開在你的 GitHub 上。
為了驗證。你能夠查看 GitHub 上你的組織的成員選項卡。
GitHub服務掛鈎
依照下面步驟配置自己主動化構建的 GitHub 服務掛鈎:
| Step | Screenshot | Description |
|---|---|---|
| 1. | ![]() |
登錄到 GitHub.com,並轉到您的倉庫頁面,點擊右側頁面“Settings”。 運行該操作要求你有該倉庫的管理員權限。 |
| 2. | ![]() |
點擊頁面左側的“Webhooks & Services”。 |
| 3. | ![]() |
找到 "Docker" 並點擊它. |
| 4. | ![]() |
最后一步
相信非常多新手看完上面的指南仍然雲里霧里,留了最后一層窗戶紙:在Github項目頂層文件夾加入配套的Dockerfile。
FROM ubuntu
MAINTAINER Wei Zhou <cszhouwei@gmail.com>
RUN apt-get update; \
apt-get -y upgrade
RUN apt-get -y install g++ cmake git subversion
RUN mkdir /home/git; \
cd /home/git; \
sudo git clone https://github.com/cszhouwei/cmake_demo.git -b master; \
cd cmake_demo; \
mkdir build; \
cd build; \
cmake -DCMAKE_BUILD_TYPE=Release ../; \
make
CMD ["/home/git/cmake_demo/buld/module_xxx/module_xxx", "--config", "/etc/module_xxx.conf"]上述Dockerfile位於我的cmake_demo演示樣例項目。有興趣的讀者請自取!
Github:https://github.com/cszhouwei/cmake_demo.git
DockerHub:docker pull cszhouwei/cmake-demo
參考文獻
https://github.com/widuu/chinese_docker/blob/master/SUMMARY.md






