

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 entrada con formato JSON 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 compilación, la entrada con formato JSON 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'"
```