Docker in un esempio di immagine personalizzato per CodeBuild - AWS CodeBuild

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

L'esempio seguente crea ed esegue un'immagine Docker utilizzando AWS CodeBuild un'immagine di build Docker personalizzata (docker:dindin 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 AmazonECR»

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 di Amazon S3, i prezzi e AWS Key Management Service i prezzi di Amazon CloudWatch.

Esegui Docker in un esempio di immagine personalizzato

Usa la seguente procedura per eseguire il Docker in un esempio di immagine personalizzato. Per ulteriori informazioni su questo esempio, vedereDocker in un esempio di immagine personalizzato per CodeBuild.

Per eseguire Docker in un esempio di immagine personalizzato
  1. Crea i file come descritto nelle File sezioni Struttura delle directory 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 utilizzi un bucket di input S3, assicurati di creare un ZIP file che contenga i file, quindi caricalo nel bucket di input. Non aggiungete (root directory name) al ZIP file, ma solo i file al suo interno. (root directory name)

  2. 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 JSON formato -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 demone Docker è abilitato per le versioni non compilate. VPC Se desideri utilizzare i contenitori Docker per le VPC build, consulta Runtime Privilege e Linux Capabilities sul sito Web di Docker Docs e abilita la modalità privilegiata. Inoltre, Windows non supporta la modalità privilegiata.

  3. Per vedere i risultati della compilazione, cercare la stringa Hello, World! nel log di compilazione. Per ulteriori informazioni, consulta Visualizzazione dei dettagli delle compilazioni.

Struttura delle directory

Questo esempio assume la seguente struttura delle directory.

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

File

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"