

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

# Adatta l'esempio «Pubblica immagine Docker su Amazon ECR' per inviarlo a Docker Hub
<a name="sample-docker-docker-hub"></a>

Per adattare l'esempio 'Publish Docker image to Amazon ECR' in modo che l'immagine Docker venga inviata a Docker Hub anziché ad Amazon ECR, modifica il codice dell'esempio. Per ulteriori informazioni sull'esempio, consulta e. [Esempio di «Pubblica immagine Docker in un archivio di immagini Amazon ECR» per CodeBuild](sample-docker.md) [Esegui l'esempio «Pubblica immagine Docker su Amazon ECR'](sample-docker.md#sample-docker-running)
**Nota**  
Se si utilizza una versione di Docker precedente alla 17.06, rimuovere l'opzione `--no-include-email`.

1. Sostituisci queste righe di codice specifiche di Amazon ECRS nel `buildspec.yml` file:

   ```
   ...
     pre_build:
       commands:
         - echo Logging in to Amazon ECR...
         - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
     build:
       commands:
         - echo Build started on `date`
         - echo Building the Docker image...          
         - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
         - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
     post_build:
       commands:
         - echo Build completed on `date`
         - echo Pushing the Docker image...
         - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
   ...
   ```

   con queste righe di codice specifiche di Docker Hub:

   ```
   ...
     pre_build:
       commands:
         - echo Logging in to Docker Hub...
         # Type the command to log in to your Docker Hub account here.          
     build:
       commands:
         - echo Build started on `date`
         - echo Building the Docker image...
         - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
         - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $IMAGE_REPO_NAME:$IMAGE_TAG
     post_build:
       commands:
         - echo Build completed on `date`
         - echo Pushing the Docker image...
         - docker push $IMAGE_REPO_NAME:$IMAGE_TAG
   ...
   ```

1. Carica il codice modificato 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. Sostituire queste righe di codice dall'input in formato JSON al comando `create-project`:

   ```
   ...
       "environmentVariables": [
         {
           "name": "AWS_DEFAULT_REGION",
           "value": "region-ID"
         },
         {
           "name": "AWS_ACCOUNT_ID",
           "value": "account-ID"
         },
         {
           "name": "IMAGE_REPO_NAME",
           "value": "Amazon-ECR-repo-name"
         },
         {
           "name": "IMAGE_TAG",
           "value": "latest"
         }
       ]
   ...
   ```

   con queste righe di codice:

   ```
   ...
       "environmentVariables": [
         {
           "name": "IMAGE_REPO_NAME",
           "value": "your-Docker-Hub-repo-name"
         },
         {
           "name": "IMAGE_TAG",
           "value": "latest"
         }
       ]
   ...
   ```

1. Crea un ambiente di compilazione, esegui la build e visualizza le informazioni relative alla build.

1. Conferma di AWS CodeBuild aver inviato correttamente l'immagine Docker al repository. Accedere a Docker Hub, andare nel repository e selezionare la scheda **Tags (Tag)**. Il tag `latest` dovrebbe contenere un valore di **Last Updated (Ultimo aggiornamento)** molto recente.