

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

# Windows Docker 为以下版本构建示例 CodeBuild
<a name="sample-windows-docker-custom-image"></a>

以下示例使用 CodeBuild构建和运行 Windows Docker 镜像。

**Topics**
+ [运行 Windows Docker 构建示例](#sample-windows-docker-build-running)

## 运行 Windows Docker 构建示例
<a name="sample-windows-docker-build-running"></a>

使用以下过程运行 Windows Docker 构建。

**运行 Windows Docker 构建示例**

1. 按照本主题[目录结构](#sample-windows-docker-custom-image-dir)和[文件](#sample-windows-docker-custom-image-files)部分所述创建文件，然后将其上传到 S3 输入存储桶或 AWS CodeCommit GitHub、或 Bitbucket 存储库。
**重要**  
请不要上传 `(root directory name)`，而只上传 `(root directory name)` 中的文件。  
如果您使用的是 S3 输入存储桶，请务必创建一个包含这些文件的 ZIP 文件，然后将其上传到输入存储桶。请不要将 `(root directory name)` 添加到 ZIP 文件中，而只添加 `(root directory name)` 中的文件。

1. 创建 `WINDOWS_EC2` 实例集。

   如果您使用创建队列，则`create-fleet`命令的 JSON 格式输入可能与此类似。 AWS CLI (请将占位符替换为您自己的值。)

   ```
   {
     "name": "fleet-name",
     "baseCapacity": 1,
     "environmentType": "WINDOWS_EC2",
     "computeType": "BUILD_GENERAL1_MEDIUM"
   }
   ```

1. 创建构建项目、运行构建和查看相关构建信息。

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

   ```
   {
     "name": "project-name",
     "source": {
       "type": "S3",
       "location": "bucket-name/DockerImageSample.zip"
     },
     "artifacts": {
       "type": "NO_ARTIFACTS"
     },
     "environment": {
       "type": "WINDOWS_EC2",
       "image": "Windows",
       "computeType": "BUILD_GENERAL1_MEDIUM",
       "fleet": {
          "fleetArn": "fleet-arn"
       }
     },
     "serviceRole": "arn:aws:iam::account-ID:role/role-name"
   }
   ```

1. 要查看构建结果，请在构建的日志中查找字符串 `Hello, World!`。有关更多信息，请参阅 [查看构建详细信息](view-build-details.md)。

### 目录结构
<a name="sample-windows-docker-custom-image-dir"></a>

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

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

### 文件
<a name="sample-windows-docker-custom-image-files"></a>

在此示例中使用的操作系统的基本映像是 `mcr.microsoft.com/windows/servercore:ltsc2022`。此示例将使用这些文件。

`buildspec.yml`（在 `(root directory name)`）

```
version: 0.2

phases:
  pre_build:
    commands:
      - docker build -t helloworld .
  build:
    commands:
      - docker images
      - docker run helloworld powershell -Command "Write-Host 'Hello World!'"
```

`Dockerfile`（在 `(root directory name)`）

```
FROM mcr.microsoft.com/windows/servercore:ltsc2022

RUN powershell -Command "Write-Host 'Hello World'"
```