Exemplo de servidor de criação de imagens Docker para CodeBuild - AWS CodeBuild

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

O exemplo a seguir transfere suas compilações do Docker para um servidor gerenciado de criação de imagens. 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.

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 do Amazon S3, preços e AWS Key Management Service preços da Amazon CloudWatch.

Configurar um servidor Docker

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.

Para configurar um servidor Docker
  1. Crie os arquivos conforme descrito nas Arquivos seções Estrutura de diretório 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).

  2. Crie um projeto de compilação, execute a compilação e visualize as informações relacionadas à compilação:

    1. Na seção Ambiente do console, escolha Configuração adicional, navegue até Configuração do servidor Docker e selecione Habilitar servidor docker para este projeto. Em seguida, você pode escolher o tipo de computação do servidor Docker e fornecer uma credencial do Registro.

    2. 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 Docker devem permitir a entrada de tráfego de rede da VPC configurada no projeto. Eles devem permitir a entrada na porta 9876.

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

Estrutura de diretório

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

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

Arquivos

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 . - docker run helloworld echo "Hello, World!"

Dockerfile (em (root directory name))

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