
准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Build two Container images in Cloud Build
/ 50
Build and Test Containers with a build configuration file and Cloud Build
/ 50
在本实验中,您将使用 Cloud Build 基于提供的代码和 Dockerfile 构建一个 Docker 容器映像,然后将容器上传到 Artifact Registry。
在本实验中,您将学习如何执行以下任务:
对于每个实验,您都会免费获得一个新的 Google Cloud 项目及一组资源,它们都有固定的使用时限。
点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示登录页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
您也可以在实验详细信息面板中找到用户名。
点击下一步。
复制下面的密码,然后将其粘贴到欢迎对话框中。
您也可以在实验详细信息面板中找到密码。
点击下一步。
继续在后续页面中点击以完成相应操作:
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
完成初始登录步骤后,项目信息中心将会打开。
Google Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。
Google Cloud Shell 提供了可用于访问您的 Google Cloud 资源的命令行工具。
在 Cloud 控制台右上角的工具栏中,点击“打开 Cloud Shell”按钮。
点击继续。
预配并连接到环境需要一些时间。如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 PROJECT_ID。例如:
gcloud 是 Google Cloud 的命令行工具。它会预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
输出:
输出示例:
输出:
输出示例:
记录您的 Google Cloud 项目名称。该值显示在 Google Cloud 控制台的顶部栏中。其格式为:qwiklabs-gcp-
后跟若干十六进制数字。
在 Google Cloud 控制台的导航菜单 () 中,点击 API 和服务。
点击媒体库。
在搜索 API 和服务框中输入 Cloud Build。
在 Cloud Build API 的搜索结果卡片中,如果未看到确认 Cloud Build API 已启用的消息,请点击启用按钮。
点击返回按钮,返回之前显示搜索框的屏幕。在搜索框中,输入 Artifact Registry。
在 Google Artifact Registry API 的搜索结果卡片中,如果未看到确认 Artifact Registry API 已启用的消息,请点击启用按钮。
您可以编写 build 配置文件,指示 Cloud Build 在构建容器时执行哪些任务。这些 build 文件可以提取依赖项、运行单元测试和分析等。在此项任务中,您将创建一个 DockerFile,然后将其用作 Cloud Build 的 build 配置脚本。您还将创建简单的 Shell 脚本 (quickstart.sh),用于表示容器内的应用。
在 Google Cloud 控制台标题栏中,点击激活 Cloud Shell。
出现提示时,点击授权。
Cloud Shell 会在 Google Cloud 控制台窗口底部打开。
quickstart.sh
文件:quickstart.sh
文件中:按 CTRL+X 键保存文件并关闭 Nano,然后依次按 Y 和 Enter 键。
使用 Nano 文本编辑器创建空白的 Dockerfile
文件:
此命令指示 build 使用 Alpine Linux 基础映像。
此命令会将 quickstart.sh
脚本添加到映像中的 / 目录。
此命令会将映像配置为在创建和运行关联容器时执行 /quickstart.sh
脚本。
Dockerfile 的内容现在应如下所示:
按 CTRL+X 键保存文件并关闭 Nano,然后依次按 Y 和 Enter 键。
在 Cloud Shell 中运行以下命令,使 quickstart.sh
脚本可执行:
quickstart-docker-repo
且说明文本为“Docker 仓库”的 Docker 仓库当构建命令完成时,您的 Docker 映像会构建完毕并推送到 Artifact Registry。
quickstart-docker-repo
的仓库。quickstart-image
Docker 映像会显示在列表中。
Cloud Build 还支持自定义 build 配置文件。在此项任务中,您将通过 Cloud Build 使用 YAML 格式的自定义 build 文件整合现有的 Docker 容器。
我们来创建一个名为 cloudbuild.yaml
的示例自定义 Cloud Build 配置文件。
cloudbuild.yaml
的文件:cloudbuild.yaml
文件中:按 Ctrl+O 组合键,然后按 Enter 键,保存编辑好的文件。
按 Ctrl+X 组合键,退出 nano 文本编辑器。
运行以下命令以设置区域变量,并将该值插入到 yaml 文件中。
cloudbuild.yaml
的内容:您将会看到以下输出:
此文件指示 Cloud Build 使用 Docker 基于当前本地目录中的 Dockerfile 规范构建映像,并使用 gcr.io/$PROJECT_ID/quickstart-image
($PROJECT_ID
是一个替代变量,Cloud Build 会使用关联项目的 ID 自动填充其值)标记该映像,然后将其推送到 Artifact Registry。
cloudbuild.yaml
作为 build 配置文件启动 Cloud Build:Cloud Shell 中的 build 输出应该与之前相同。当构建命令完成时,该映像的新版本会推送到 Artifact Registry。
在 Google Cloud 控制台的搜索栏(位于控制台窗口顶部)中搜索 Artifact Registry。
在搜索结果中,点击 Artifact Registry。
点击名为 quickstart-docker-repo > quickstart-image 的仓库。
列表中现在有两个版本的 quickstart-image
。
点击检查我的进度以验证是否完成了以下目标:
在 Google Cloud 控制台的搜索栏(位于控制台窗口顶部)中,搜索 Cloud Build。
在搜索结果中,点击 Cloud Build。
在 Cloud Build 中,点击历史记录。列表中会显示两个 build。
点击列表顶部 build 的 ID。 该 build 的详细信息(包括 build 日志)即会显示。
自定义 build 配置文件的真正强大之处在于,它们不仅仅只是构建容器,还能并行或依序执行其他操作:在新构建的容器上运行测试、将这些容器推送到各个目的地,甚至还可以将它们部署到 Kubernetes Engine。
在本任务中,我们会看到一个简单的示例:一个 build 配置文件会测试它构建的容器并将结果报告给调用它的环境。第一步是更改 quickstart.sh
文件。
在 Cloud Shell 中,使用 nano 打开 quickstart.sh
。
将现有内容替换为以下内容:
按 Ctrl+O 组合键,然后按 Enter 键,保存编辑好的文件。
按 Ctrl+X 组合键,退出 nano 文本编辑器。
我们来新建一个新的自定义 Cloud Build 配置文件,名为 cloudbuild2.yaml
。这次代码略有修改,以便展示 Cloud Build 能够测试它所构建的容器。
cloudbuild2.yaml
的文件:cloudbuild2.yaml
文件中:按 Ctrl+O 组合键,然后按 Enter 键,保存编辑好的文件。
按 Ctrl+X 组合键,退出 nano 文本编辑器。
运行以下命令,将区域值插入此 yaml 文件中。
cloudbuild2.yaml
的内容:您将会看到以下输出:
除了上面所述的操作外,这个 build 配置文件还会运行它创建的 quickstart-image
。在此任务中,quickstart.sh
脚本经过了修改,会在参数 ['fail']
传递给它时模拟测试失败。
cloudbuild.yaml
作为 build 配置文件启动 Cloud Build:您会看到以如下文本结尾的命令输出:
输出
该命令将返回一个非零值。如果您将此 build 嵌入到脚本中,那么脚本将能够在构建失败时做出响应。
点击检查我的进度以验证是否完成了以下目标:
完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。
系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交。
星级数的含义如下:
如果您不想提供反馈,可以关闭该对话框。
如果要留言反馈、提出建议或做出更正,请使用支持标签页。
版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验