

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 JSON-formatted entrada para o `create-project` comando poderá ser semelhante a esta. (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"
```