

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Docker em amostra de imagem personalizada para CodeBuild
<a name="sample-docker-custom-image"></a>

O exemplo a seguir cria e executa uma imagem do Docker usando AWS CodeBuild uma imagem de compilação personalizada do Docker (`docker:dind`no Docker Hub). 

Para saber como criar uma imagem do Docker usando uma imagem de construção fornecida CodeBuild com o suporte do Docker, consulte nosso. [Exemplo “Publicar imagem do Docker no Amazon ECR”](sample-docker.md)

**Importante**  
A execução dessa amostra pode resultar em cobranças em sua AWS conta. Isso inclui possíveis cobranças por CodeBuild e por AWS recursos e ações relacionados ao Amazon S3 e CloudWatch aos AWS KMS registros. Para obter mais informações, consulte [CodeBuild preços, preços](https://aws.amazon.com/codebuild/pricing) do [Amazon S3, preços](https://aws.amazon.com/s3/pricing) e [AWS Key Management Service preços](https://aws.amazon.com/kms/pricing) da [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [Executar o Docker no exemplo de imagem personalizada](#sample-docker-custom-image-running)

## Executar o Docker no exemplo de imagem personalizada
<a name="sample-docker-custom-image-running"></a>

Use o procedimento a seguir para executar o Docker em um exemplo de imagem personalizada. Para obter mais informações sobre este exemplo, consulte [Docker em amostra de imagem personalizada para CodeBuild](#sample-docker-custom-image).

**Para executar o Docker no exemplo de imagem personalizada**

1. Crie os arquivos conforme descrito nas [Arquivos](#sample-docker-custom-image-files) seções [Estrutura de diretório](#sample-docker-custom-image-dir) e deste tópico e, em seguida, carregue-os em um bucket de entrada do S3 ou em um AWS CodeCommit repositório do Bitbucket. GitHub 
**Importante**  
Não faça upload de `(root directory name)`, apenas dos arquivos dentro de `(root directory name)`.   
Se você estiver usando um bucket de entrada do S3, crie um arquivo ZIP que contenha os arquivos e envie-o para o bucket de entrada. Não adicione `(root directory name)` ao arquivo ZIP, apenas aos arquivos dentro de `(root directory name)`.

1. Crie um projeto de compilação, execute a compilação e exiba as respectivas informações.

   Se você usar o AWS CLI para criar o projeto de construção, a entrada formatada em JSON para o `create-project` comando poderá ser semelhante a essa. (Substitua os espaços reservados com seus próprios valores.)

   ```
   {
     "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**  
Por padrão, o daemon do Docker está habilitado para compilações não VPC. Se você quiser usar contêineres do Docker para compilações da VPC, consulte [Privilégio de tempo de execução e funcionalidades do Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) no site do Docker Docs e ative o modo privilegiado. Além disso, o Windows não é compatível com o modo privilegiado.

1. Para ver os resultados da compilação, procure no log da compilação a string `Hello, World!`. Para obter mais informações, consulte [Visualizar detalhes de compilação](view-build-details.md).

### Estrutura de diretório
<a name="sample-docker-custom-image-dir"></a>

Essa amostra pressupõe esta estrutura de diretório.

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

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

A imagem de base do sistema operacional Ubuntu é usada nessa amostra. A amostra usa estes arquivos.

`buildspec.yml` (em `(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` (em `(root directory name)`)

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