Google Container Builder是否需要Dockerfile,或者cloudbuild.yaml是否应涵盖所有用例?

时间:2017-05-14 01:06:48

标签: google-cloud-platform google-kubernetes-engine

假设所有容器构建都在Google容器生成器(GCB)上进行的工作流程,甚至还需要Dockerfile吗?

例如,要构建自定义容器,我们希望安装一些软件包或从本地文件系统复制文件,我看到大多数示例GCB仍在使用Dockerfile(例如https://github.com/GoogleCloudPlatform/cloud-builders) - 这是因为它无法使用cloudbuild.yaml?

1 个答案:

答案 0 :(得分:2)

构建Docker容器映像的最简单工具仍然是使用带有docker build的{​​{1}}命令。如果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 build。例如,它可以让您轻松安装依赖包。

您可以在Dockerfile步骤之前或之后使用cloudbuild.yaml执行其他操作。例如,如果您想创建二进制文件而不将SDK打包到最终图像中,则可以使用docker build轻松完成此操作。或者,如果您想使用cloudbuild.yaml从云存储中提取一些额外资产。

容器构建器还允许您构建和推送任意数量的图像,所有图像都与git repo的相同提交相关(并且它们也可以包含图像标记中的提交sha),其中包含许多运行步骤{ {1}}。您甚至可以并行运行这些构建。

有关如何为任意事物添加步骤,请参阅https://cloud.google.com/container-builder/docs/api/build-steps