

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

# Exemplo de servidor de criação de imagens Docker para CodeBuild
<a name="sample-docker-server"></a>

O exemplo a seguir transfere as compilações do Docker para um servidor de compilação de imagens gerenciado. Você pode adaptar esse exemplo para provisionar um servidor de criação de imagens Docker dedicado e gerenciado na configuração do seu CodeBuild projeto. Observe que a instância provisionada está ativa enquanto as compilações são executadas ativamente para o projeto, e a instância é interrompida quando as compilações não estão em execução. A instância provisionada é armazenada por até um mês antes de ser reciclada. Para obter mais informações, consulte [ CodeBuild Docker Server Capability](https://aws.amazon.com/blogs//aws/accelerate-ci-cd-pipelines-with-the-new-aws-codebuild-docker-server-capability).

**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**
+ [Configurar um servidor do Docker](#sample-docker-server-running)

## Configurar um servidor do Docker
<a name="sample-docker-server-running"></a>

Use o procedimento a seguir para provisionar um ambiente de computação dedicado para um CodeBuild projeto que gerencia cargas de trabalho do Docker e armazena camadas de imagem do Docker. 

**Como configurar um servidor do Docker**

1. Crie os arquivos conforme descrito nas [Arquivos](#sample-docker-server-files) seções [Estrutura de diretório](#sample-docker-server-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:

   1. Na seção **Ambiente** do console, escolha **Configuração adicional**, acesse **Configuração do servidor do Docker** e selecione **Habilitar servidor do Docker para este projeto**. Depois, você pode escolher o **Tipo de computação do servidor do Docker** e fornecer uma **Credencial do registro**.

   1. 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/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**  
Os grupos de segurança configurados para servidores do Docker devem permitir a entrada de tráfego de rede da VPC configurada no projeto. Eles devem permitir a entrada na porta 9876.

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

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

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

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

`Dockerfile` (em `(root directory name)`)

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