Adapte o exemplo “Publicar imagem do Docker no Amazon ECR” para enviar para o Docker Hub - AWS CodeBuild

Adapte o exemplo “Publicar imagem do Docker no Amazon ECR” para enviar para o Docker Hub

Para adaptar o exemplo “Publicar imagem do Docker no Amazon ECR” de modo que a imagem do Docker seja enviada ao Docker Hub e não ao Amazon ECR, edite o código do exemplo. Para obter mais informações sobre o exemplo, consulte Exemplo “Publicar imagem do Docker em um repositório de imagens do Amazon ECR” para CodeBuild e Execute o exemplo “Publicar imagem do Docker no Amazon ECR”.

nota

Se você estiver usando uma versão do Docker anterior à 17.06, remova a opção --no-include-email.

  1. Substitua estas linhas de código específicas do Amazon ECR no arquivo buildspec.yml:

    ... pre_build: commands: - echo Logging in to Amazon ECR... - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com build: commands: - echo Build started on `date` - echo Building the Docker image... - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG post_build: commands: - echo Build completed on `date` - echo Pushing the Docker image... - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG ...

    Por estas linhas de código específicas no Docker Hub:

    ... pre_build: commands: - echo Logging in to Docker Hub... # Type the command to log in to your Docker Hub account here. build: commands: - echo Build started on `date` - echo Building the Docker image... - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $IMAGE_REPO_NAME:$IMAGE_TAG post_build: commands: - echo Build completed on `date` - echo Pushing the Docker image... - docker push $IMAGE_REPO_NAME:$IMAGE_TAG ...
  2. Faça upload do código editado em um bucket de entrada do S3 ou em um repositório do AWS CodeCommit, do GitHub ou do Bitbucket.

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

  3. Substitua estas linhas de código da entrada formatada JSON para o comando create-project:

    ... "environmentVariables": [ { "name": "AWS_DEFAULT_REGION", "value": "region-ID" }, { "name": "AWS_ACCOUNT_ID", "value": "account-ID" }, { "name": "IMAGE_REPO_NAME", "value": "Amazon-ECR-repo-name" }, { "name": "IMAGE_TAG", "value": "latest" } ] ...

    Por estas linhas de código:

    ... "environmentVariables": [ { "name": "IMAGE_REPO_NAME", "value": "your-Docker-Hub-repo-name" }, { "name": "IMAGE_TAG", "value": "latest" } ] ...
  4. Crie um ambiente de compilação, execute a compilação e exiba informações relacionadas.

  5. Confirme se o AWS CodeBuild foi bem-sucedido ao enviar a imagem de docker para o repositório. Faça login no Docker Hub, vá até o repositório e selecione a guia Tags. A tag latest deve conter um valor Last Updated bem recente.