6

我有这种情况,因为文档不清楚。该gcloud builds submit --tag gcr.io/[PROJECT-ID]/helloworld命令将

  • 归档我的源文件夹的内容,然后在 Google 构建服务器上运行 docker build。
  • 此外,它只查看 .gitignore 文件以获取要存档的内容。如果它是 docker build,它应该尊重 .dockerignore 文件。
  • 也没有关于如何编译应用程序的消息。如果在 dockerized 之前不是预编译的应用程序,则必须对其进行编译。

快速指南仅认为应用程序是预编译的应用程序,并且需要根据 .gitignore 的文件夹的所有内容来运行应用程序。人们不会意识到新技术的所有这些。我只是自己想通了。

因此,另一种方法是在 docker 文件中包含构建步骤(这将使我的图像变得沉重)或在本地(手动)创建一个 docker 图像,然后将图像提交到存储库(手动)然后发布到云运行(使用记录或手动的第二个命令)。

我在这里有什么遗漏吗?

4

2 回答 2

6

Cloud Build 尊重.dockerignore. 它将上传所有不在的文件.gitignore,但一旦上传,它将尊重.dockerignore用于构建的文件。

编译您的应用程序通常与“容器化”它同时完成。例如,对于 Node.js 应用程序,Dockerfile 必须运行npm install --production. 我建议查看快速入门中的许多示例。

于 2019-04-25T16:30:17.423 回答
1

我想你已经明白了,基本上你的选择是:

通常,如果您需要额外的构建步骤,我建议您将它们包含在您的 Docker 文件中。理想情况下,无论哪种情况,您都应该能够从源代码 + Dockerfile 转换为完整的图像。

于 2019-04-25T16:26:54.417 回答