的 Docker 镜像构建服务器示例 CodeBuild - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

的 Docker 镜像构建服务器示例 CodeBuild

以下示例将您的 Docker 版本卸载到托管映像生成服务器。您可以调整此示例,以便在 CodeBuild 项目配置中配置专用的托管 Docker 镜像生成服务器。请注意,当项目正在运行内部版本时,预配置的实例处于活动状态,当构建未运行时,该实例将停止。预配置的实例最多可存储一个月,然后才会被回收利用。有关更多信息,请参阅 CodeBuild Docker 服务器功能

重要

运行此示例可能会导致您的 Amazon 账户被扣款。其中包括与 Amazon S3 和 CloudWatch 日志相关的 Amazon 资源和操作可能产生的费用。 CodeBuild Amazon KMS有关更多信息,请参阅CodeBuild 定价Amazon S3 定价Amazon Key Management Service 定价亚马逊 CloudWatch定价

配置 Docker 服务器

使用以下步骤为管理 Docker 工作负载和存储 Docker 映像层的 CodeBuild 项目配置专用计算环境。

配置 Docker 服务器
  1. 按照本主题目录结构文件部分所述创建文件,然后将其上传到 S3 输入存储桶或 Amazon CodeCommit GitHub、或 Bitbucket 存储库。

    重要

    请不要上传 (root directory name),而只上传 (root directory name) 中的文件。

    如果您使用的是 S3 输入存储桶,请务必创建一个包含这些文件的 ZIP 文件,然后将其上传到输入存储桶。请不要将 (root directory name) 添加到 ZIP 文件中,而只添加 (root directory name) 中的文件。

  2. 创建构建项目,运行构建,并查看相关的构建信息:

    1. 在控制台的 “环境” 部分,选择 “其他配置”,导航到 “Docker 服务器配置”,然后选择 “为此项目启用 docker 服务器”。然后,您可以选择 Docker 服务器计算类型并提供注册表凭据。

    2. 如果您使用创建构建项目,则create-project命令的 JSON 格式输入可能与此类似。 Amazon CLI (请将占位符替换为您自己的值。)

      { "name": "sample-docker-custom-image-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/DockerServerSample.zip" }, "artifacts": { "type": "NO_ARTIFACTS" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/amazonlinux-x86_64-standard:5.0", "computeType": "BUILD_GENERAL1_LARGE", "dockerServer": [ { "computeType": "BUILD_GENERAL1_LARGE", "securityGroupIds": [ "security-groups-ID" ] } ] }, "serviceRole": "arn:aws:iam::account-ID:role/role-name" }
      注意

      为 Docker 服务器配置的安全组应允许来自项目中配置的 VPC 的入口网络流量。它们应该允许在端口 9876 上进入。

  3. 要查看构建结果,请在构建的日志中查找字符串 Hello, World!。有关更多信息,请参阅 查看构建详细信息

目录结构

此示例采用以下目录结构。

(root directory name) ├── buildspec.yml └── Dockerfile

文件

在此示例中使用的操作系统的基本映像是 Ubuntu。此示例将使用这些文件。

buildspec.yml(在 (root directory name)

version: 0.2 phases: build: commands: - docker buildx build . - docker run helloworld echo "Hello, World!"

Dockerfile(在 (root directory name)

FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN echo "Hello World"