

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Docker in un esempio di immagine personalizzato per CodeBuild
<a name="sample-docker-custom-image"></a>

L'esempio seguente crea ed esegue un'immagine Docker utilizzando AWS CodeBuild un'immagine di build Docker personalizzata (`docker:dind`in Docker Hub). 

Per scoprire come creare un'immagine Docker utilizzando invece un'immagine di build fornita CodeBuild con il supporto Docker, consulta il nostro. [Esempio «Pubblica immagine Docker su Amazon ECR'](sample-docker.md)

**Importante**  
L'esecuzione di questo esempio potrebbe comportare addebiti sul tuo AWS account. Questi includono eventuali addebiti per CodeBuild e per AWS risorse e azioni relative ad Amazon S3 e AWS KMS CloudWatch Logs. Per ulteriori informazioni, consulta [CodeBuild i prezzi, i prezzi](https://aws.amazon.com/codebuild/pricing) di [Amazon S3, i prezzi](https://aws.amazon.com/s3/pricing) e [AWS Key Management Service i prezzi](https://aws.amazon.com/kms/pricing) di [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [Esegui Docker in un esempio di immagine personalizzato](#sample-docker-custom-image-running)

## Esegui Docker in un esempio di immagine personalizzato
<a name="sample-docker-custom-image-running"></a>

Usa la seguente procedura per eseguire il Docker in un esempio di immagine personalizzato. Per ulteriori informazioni su questo esempio, vedere[Docker in un esempio di immagine personalizzato per CodeBuild](#sample-docker-custom-image).

**Per eseguire Docker in un esempio di immagine personalizzato**

1. Crea i file come descritto nelle [File](#sample-docker-custom-image-files) sezioni [Struttura delle directory](#sample-docker-custom-image-dir) e di questo argomento, quindi caricali in un bucket di input S3 o in un repository AWS CodeCommit GitHub, o Bitbucket. 
**Importante**  
Non caricare `(root directory name)`, ma solo i file all'interno di `(root directory name)`   
Se si sta utilizzando un bucket di input S3, assicurarsi di creare un file ZIP contenente i file, quindi caricarlo nel bucket di input. Non aggiungere `(root directory name)` al file ZIP, ma solo i file all'interno di `(root directory name)`

1. Crea un progetto di compilazione, esegui la build e visualizza le relative informazioni sulla build.

   Se usi il AWS CLI per creare il progetto di compilazione, l'input in formato JSON del `create-project` comando potrebbe avere un aspetto simile a questo. (Sostituire i segnaposto con i propri valori).

   ```
   {
     "name": "sample-docker-custom-image-project",
     "source": {
       "type": "S3",
       "location": "codebuild-region-ID-account-ID-input-bucket/DockerCustomImageSample.zip"
     },
     "artifacts": {
       "type": "NO_ARTIFACTS"
     },
     "environment": {
       "type": "LINUX_CONTAINER",
       "image": "docker:dind",
       "computeType": "BUILD_GENERAL1_SMALL",
       "privilegedMode": false
     },
     "serviceRole": "arn:aws:iam::account-ID:role/role-name",
     "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"
   }
   ```
**Nota**  
Per impostazione predefinita, il daemon Docker è abilitato per le build non VPC. Se desideri utilizzare i contenitori Docker per le build VPC, [consulta Runtime Privilege e Linux Capabilities sul sito Web di Docker Docs e](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) abilita la modalità privilegiata. Inoltre, Windows non supporta la modalità privilegiata.

1. Per vedere i risultati della compilazione, cercare la stringa `Hello, World!` nel log di compilazione. Per ulteriori informazioni, consulta [Visualizzazione dei dettagli delle compilazioni](view-build-details.md).

### Struttura delle directory
<a name="sample-docker-custom-image-dir"></a>

Questo esempio assume la seguente struttura delle directory.

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

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

L'immagine di base del sistema operativo utilizzata in questo esempio è di Ubuntu. L'esempio utilizza i seguenti file.

`buildspec.yml` (in `(root directory name)`)

```
version: 0.2

phases:
  pre_build:
    commands:
      - docker build -t helloworld .
  build:
    commands:
      - docker images
      - docker run helloworld echo "Hello, World!"
```

`Dockerfile` (in `(root directory name)`)

```
FROM maven:3.3.9-jdk-8
 
RUN echo "Hello World"
```