Google cloud platform Dockerfile是Google容器生成器所必需的还是cloudbuild.yaml应该涵盖所有用例?
假设所有容器构建都发生在GoogleContainerBuilder(GCB)上的工作流,Dockerfile是否必要Google cloud platform Dockerfile是Google容器生成器所必需的还是cloudbuild.yaml应该涵盖所有用例?,google-cloud-platform,google-kubernetes-engine,Google Cloud Platform,Google Kubernetes Engine,假设所有容器构建都发生在GoogleContainerBuilder(GCB)上的工作流,Dockerfile是否必要 例如,为了构建自定义容器,我们希望在其中安装一些包或从本地文件系统复制文件,我看到大多数示例GCB仍然使用Dockerfile(例如)-这是因为无法使用cloudbuild.yaml吗?最简单的合成Docker容器映像的工具仍然是将Docker build命令与Dockerfile一起使用。在源代码的根目录中使用Dockerfile的单个步骤中有cloudbuild.yaml文
例如,为了构建自定义容器,我们希望在其中安装一些包或从本地文件系统复制文件,我看到大多数示例GCB仍然使用Dockerfile(例如)-这是因为无法使用cloudbuild.yaml吗?最简单的合成Docker容器映像的工具仍然是将
Docker build
命令与Dockerfile
一起使用。在源代码的根目录中使用Dockerfile
的单个步骤中有cloudbuild.yaml
文件是非常常见的,如下所示:
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
在docker build
步骤之前或之后执行其他操作。例如,如果您想创建一个二进制文件而不将SDK打包到最终映像中,那么使用cloudbuild.yaml
就很容易做到这一点。或者,如果您想使用gsutil
从云存储中提取一些额外的资产
容器生成器还允许您构建和推送任意数量的图像,所有这些图像都与git repo的同一提交相关联(它们也可以在图像标记中包含提交sha),方法是运行许多步骤docker build
。您甚至可以并行运行这些构建
有关如何为任意内容添加步骤,请参阅。我在我的
Dockerfile
中使用RUN npm RUN build:ssr
,然后可以在Dockerfile
中成功访问创建的目录dist/browser
,但是当我试图从cloudbuild.yaml
部署dist/browser
目录时,该目录不存在。他们有不同的范围吗?我还为此提出了一个问题