

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejemplo de compilación de Windows Docker para CodeBuild
<a name="sample-windows-docker-custom-image"></a>

En el siguiente ejemplo, se crea y ejecuta una imagen de Docker de Windows mediante. CodeBuild

**Topics**
+ [Ejecución del ejemplo de compilación de Windows Docker](#sample-windows-docker-build-running)

## Ejecución del ejemplo de compilación de Windows Docker
<a name="sample-windows-docker-build-running"></a>

Utilice el siguiente procedimiento para ejecutar las compilaciones de Windows Docker.

**Cómo ejecutar el ejemplo de compilaciones de Windows Docker**

1. Cree los archivos tal y como se describe en las [Archivos](#sample-windows-docker-custom-image-files) secciones [Estructura de directorios](#sample-windows-docker-custom-image-dir) y de este tema y, a continuación, cárguelos en un depósito de entrada de S3 o en un AWS CodeCommit GitHub repositorio de Bitbucket. 
**importante**  
No cargue `{{(root directory name)}}`, solo los archivos incluidos en `{{(root directory name)}}`.   
Si utiliza un bucket de entrada de S3, no olvide crear un archivo ZIP que contenga los archivos y cárguelo en el bucket de entrada. No añada `{{(root directory name)}}` al archivo ZIP, solo los archivos incluidos en `{{(root directory name)}}`.

1. Cree una flota de `WINDOWS_EC2`.

   Si utilizas el AWS CLI para crear la flota, la JSON-formatted entrada del `create-fleet` comando podría tener un aspecto similar al siguiente. (Sustituya los marcadores de posición por sus propios valores).

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

1. Cree un proyecto de compilación, ejecute la compilación y vea la información de compilación relacionada.

   Si utilizas la AWS CLI para crear el proyecto de construcción, la JSON-formatted entrada del `create-project` comando podría tener un aspecto similar al siguiente. (Sustituya los marcadores de posición por sus propios valores).

   ```
   {
     "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. Para ver los resultados de compilación, busque en el log de la compilación la cadena `Hello, World!` Para obtener más información, consulte [Ver detalles de las compilaciones](view-build-details.md).

### Estructura de directorios
<a name="sample-windows-docker-custom-image-dir"></a>

En este ejemplo se presupone que existe esta estructura de directorios.

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

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

La imagen base del sistema operativo utilizado en este ejemplo es `mcr.microsoft.com/windows/servercore:ltsc2022`. El ejemplo usa los siguientes archivos.

`buildspec.yml` (in `{{(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` (in `{{(root directory name)}}`)

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

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