2017-05-14 31 views
2

假設所有容器構建都發生在Google容器構建器(GCB)上的工作流程,甚至需要Dockerfile嗎?是Google Container Builder必需的Dockerfile還是cloudbuild.yaml應涵蓋所有用例?

例如,要構建自定義容器,我們希望安裝一些軟件包或從本地文件系統複製文件,我看到大多數GCB仍在使用Dockerfile(例如https://github.com/GoogleCloudPlatform/cloud-builders) - 這是因爲它不可能使用cloudbuild.yaml ?

回答

2

組成Docker容器映像的最簡單的工具仍然使用docker build命令和Dockerfile。這是很常見的有cloudbuild.yaml文件足下使用在源的根Dockerfile,像這樣:

steps: 
- name: 'gcr.io/cloud-builders/docker' 
    args: ['build', '-t', 'gcr.io/${PROJECT_ID}/my-image', '.'] 
images: ['gcr.io/${PROJECT_ID}/my-image'] 

因此,構建一個最終容器的圖像,使用docker buildDockerfile是推薦的方法。例如,它可以讓你輕鬆安裝依賴包。

在步驟docker build之前或之後,您可以使用cloudbuild.yaml執行其他操作。例如,如果您想創建一個二進制文件而不將SDK打包到最終映像中,那麼使用cloudbuild.yaml就很容易。或者,如果您想使用gsutil從雲端存儲中獲取一些額外資產。

容器生成器還可以讓你構建並推送儘可能多的圖像,所有圖像都與綁定到git倉庫的相同提交(並且它們也可以包含圖像標籤中的提交sha),方法是運行多個步驟docker build。你甚至可以並行運行這些構建。

有關如何爲任意事物添加步驟的信息,請參見https://cloud.google.com/container-builder/docs/api/build-steps

相關問題