

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à.

# Esempio di server di creazione di immagini Docker per CodeBuild
<a name="sample-docker-server"></a>

L'esempio seguente scarica le build Docker su un server di creazione di immagini gestito. Puoi adattare questo esempio per fornire un server di creazione di immagini Docker dedicato e gestito nella configurazione del tuo progetto. CodeBuild Tieni presente che l'istanza fornita è attiva mentre le build vengono eseguite attivamente per il progetto e viene interrotta quando le build non sono in esecuzione. L'istanza fornita viene archiviata per un massimo di un mese prima di essere riciclata. Per ulteriori informazioni, consulta [ CodeBuild Docker](https://aws.amazon.com/blogs//aws/accelerate-ci-cd-pipelines-with-the-new-aws-codebuild-docker-server-capability) Server Capability.

**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**
+ [Configura un server Docker](#sample-docker-server-running)

## Configura un server Docker
<a name="sample-docker-server-running"></a>

Utilizza la seguente procedura per fornire un ambiente di calcolo dedicato per un CodeBuild progetto che gestisce i carichi di lavoro Docker e archivia i livelli di immagine Docker. 

**Per configurare un server Docker**

1. Crea i file come descritto nelle [File](#sample-docker-server-files) sezioni [Struttura delle directory](#sample-docker-server-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:

   1. Nella sezione **Ambiente** della console, scegli **Configurazione aggiuntiva, vai alla configurazione** **del server Docker**, quindi seleziona **Abilita il server docker per** questo progetto. **Puoi quindi scegliere il **tipo di elaborazione del server Docker** e fornire una credenziale di registro.**

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

      ```
      {
        "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"
      }
      ```
**Nota**  
I gruppi di sicurezza configurati per i server Docker dovrebbero consentire il traffico di rete in ingresso dal VPC configurato nel progetto. Dovrebbero consentire l'ingresso sulla porta 9876.

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-server-dir"></a>

Questo esempio assume la seguente struttura delle directory.

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

### File
<a name="sample-docker-server-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:
  build:
    commands:
      - docker buildx build -t helloworld --load .
      - docker run helloworld echo "Hello, World!"
```

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

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