使用 Cloud Build 构建和推送 Docker 映像
了解如何通过构建 Docker 映像并将映像推送到 Artifact Registry 来开始使用 Cloud Build。Artifact Registry 提供用于管理私有软件包和 Docker 容器映像的单个位置。
您首先使用 Docker 配置文件 Dockerfile
构建映像,然后使用 Cloud Build 配置文件构建相同的映像。
如需直接在 Cloud Shell Editor 中按照此任务的分步指南来执行操作,请点击操作演示:
准备工作
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud Build and Artifact Registry API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud Build and Artifact Registry API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
准备源文件以进行构建
您需要一些示例源代码来打包到容器映像中。在此部分,您将创建一个简单的 shell 脚本和 Dockerfile
。Dockerfile
是文本文档,其中有 Docker 如何构建映像的说明。
打开一个终端窗口。
创建名为
quickstart-docker
的新目录并导航至该目录:mkdir quickstart-docker cd quickstart-docker
创建名为
quickstart.sh
且包含以下内容的文件:创建名为
Dockerfile
且包含以下内容的文件:在终端窗口中运行以下命令,使
quickstart.sh
成为可执行文件:chmod +x quickstart.sh
在 Artifact Registry 中创建 Docker 代码库
在位置
us-west2
中新建一个名为quickstart-docker-repo
且说明文字为“Docker repository”(Docker 代码库)的 Docker 代码库:gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
验证您的代码库已创建:
gcloud artifacts repositories list
您会在显示的代码库列表中看到
quickstart-docker-repo
。
使用 Dockerfile 构建映像
Cloud Build 允许您使用 Dockerfile
构建 Docker 映像。您不需要单独的 Cloud Build 配置文件。
如需使用 Dockerfile
构建,请执行以下操作:
通过运行以下命令获取您的 Cloud 项目 ID:
gcloud config get-value project
从包含
quickstart.sh
和Dockerfile
的目录运行以下命令:gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/project-id/quickstart-docker-repo/quickstart-image:tag1
构建完成后,您将看到类似于以下内容的输出:
DONE
------------------------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE IMAGES STATUS
545cb89c-f7a4-4652-8f63-579ac974be2e 2020-11-05T18:16:04+00:00 16S gs://gcb-docs-project_cloudbuild/source/1604600163.528729-b70741b0f2d0449d8635aa22893258fe.tgz us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
您刚刚使用 Dockerfile
构建了一个名为 quickstart-image
的 Docker 映像,并将该映像推送到了 Artifact Registry。
使用构建配置文件构建映像
在此部分,您将使用 Cloud Build 配置文件构建与上文相同的 Docker 映像。构建配置文件会指示 Cloud Build 根据您的规范执行任务。
在包含
quickstart.sh
和Dockerfile
的同一目录中,创建名为cloudbuild.yaml
且包含以下内容的文件。此文件是您的构建配置文件。构建时,Cloud Build 会自动将$PROJECT_ID
替换为您的项目 ID。通过运行以下命令启动构建:
gcloud builds submit --region=us-west2 --config cloudbuild.yaml
构建完成后,您将看到类似于以下内容的输出:
DONE
------------------------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE IMAGES STATUS
046ddd31-3670-4771-9336-8919e7098b11 2020-11-05T18:24:02+00:00 15S gs://gcb-docs-project_cloudbuild/source/1604600641.576884-8153be22c94d438aa86c78abf11403eb.tgz us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
您刚刚使用构建配置文件构建了 quickstart-image
并将该映像推送到了 Artifact Registry。
查看 build 详情
在 Google Cloud 控制台中打开 Cloud Build 页面。
选择您的项目,然后点击打开。
您将看到构建记录页面:
在区域下拉菜单中,选择
us-west2
以查看该区域中的 build。点击特定构建。
您将看到构建详情页面。
如需查看构建的工件,请点击构建摘要下的构建工件。
您将看到类似于以下内容的输出:
您可以从此页下载您的构建日志,并查看 Artifact Registry 中映像的详情。
清理
为避免因本页中使用的资源导致您的 Google Cloud 帐号产生费用,请按照以下步骤操作。
在 Google Cloud 控制台中打开“Artifact Registry”页面。
选择您的项目,然后点击打开。
选择 quickstart-docker-repo。
点击删除。
您现在已经删除了在此快速入门中创建的代码库。
后续步骤
- 了解如何运行 Docker 映像。
- 了解如何创建基本 build 配置文件。
- 了解如何使用 Cloud Build 进行部署。
- 了解如何构建 Node.js 应用。
- 了解如何构建 Java 应用。
- 了解如何构建 Go 应用。