Crie e envie uma imagem Docker com o Cloud Build

Saiba como começar a usar o Cloud Build criando uma imagem do Docker e enviando-a para o Artifact Registry. O Artifact Registry oferece uma única localização para gerir pacotes privados e imagens de contentores Docker.

Primeiro, vai criar a imagem com um Dockerfile, que é o ficheiro de configuração do Docker, e, em seguida, criar a mesma imagem com o ficheiro de configuração do Cloud Build.


Para seguir orientações passo a passo para esta tarefa diretamente no editor do Cloud Shell, clique em Guiar-me:

Visita guiada


Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build, Compute Engine and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build, Compute Engine and Artifact Registry APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Make sure that you have the following role or roles on the project: Artifact Registry Administrator, Cloud Build Editor, Logs Viewer, Service Account User, Service Usage Admin, Storage Bucket Viewer, Storage Object Creator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Aceder ao IAM
    2. Selecione o projeto.
    3. Clique em Conceder acesso.
    4. No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.

    5. Na lista Selecionar uma função, selecione uma função.
    6. Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
    7. Clique em Guardar.
    8. Prepare os ficheiros de origem para compilar

      Precisa de algum código-fonte de exemplo para criar um pacote numa imagem de contentor. Nesta secção, vai criar um script de shell e um Dockerfile. Um Dockerfile é um documento de texto que contém instruções para o Docker criar uma imagem.

      1. Abra uma janela de terminal.

      2. Crie um novo diretório denominado quickstart-docker e navegue para o mesmo:

        mkdir quickstart-docker
        cd quickstart-docker
        
      3. Crie um ficheiro denominado quickstart.sh com o seguinte conteúdo:

        #!/bin/sh
        echo "Hello, world! The time is $(date)."
      4. Crie um ficheiro denominado Dockerfile com o seguinte conteúdo:

        FROM alpine
        COPY quickstart.sh /
        CMD ["/quickstart.sh"]
      5. Na janela do terminal, execute o seguinte comando para tornar quickstart.sh executável:

        chmod +x quickstart.sh
        

      Crie um repositório Docker no Artifact Registry

      1. Crie um novo repositório Docker denominado quickstart-docker-repo na localização us-west2 com a descrição "Repositório Docker":

        gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
            --location=us-west2 --description="Docker repository"
        
      2. Verifique se o repositório foi criado:

        gcloud artifacts repositories list
        

        É apresentado quickstart-docker-repo na lista de repositórios apresentados.

      Crie uma imagem com o Dockerfile

      O Cloud Build permite-lhe criar uma imagem do Docker através de um Dockerfile. Não precisa de um ficheiro de configuração do Cloud Build separado.

      Para criar com um Dockerfile:

      1. Obtenha o Google Cloud ID do projeto executando o seguinte comando:

        gcloud config get-value project
        
      2. Execute o seguinte comando a partir do diretório que contém quickstart.sh e Dockerfile:

        gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1
        

      Após a compilação, é apresentado um resultado semelhante ao seguinte:

      DONE
      ------------------------------------------------------------------------------------------------------------------------------------
      ID                                    CREATE_TIME                DURATION  SOURCE   IMAGES     STATUS
      545cb89c-f7a4-4652-8f63-579ac974be2e  2020-11-05T18:16:04+00:00  16S       gs://gcb-docs-project_cloudbuild/source/1604600163.528729-b70741b0f2d0449d8635aa22893258fe.tgz  us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1  SUCCESS
      

      Acabou de criar uma imagem do Docker com o nome quickstart-image usando um Dockerfile e enviou a imagem para o Artifact Registry.

      Crie uma imagem com um ficheiro de configuração de compilação

      Nesta secção, vai usar um ficheiro de configuração do Cloud Build para criar a mesma imagem do Docker que acima. O ficheiro de configuração de compilação indica ao Cloud Build que deve realizar tarefas com base nas suas especificações.

      1. No mesmo diretório que contém quickstart.sh e o Dockerfile, crie um ficheiro denominado cloudbuild.yaml com o seguinte conteúdo. Este ficheiro é o ficheiro de configuração de compilação. No momento da compilação, o Cloud Build substitui automaticamente $PROJECT_ID pelo ID do seu projeto.

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          script: |
            docker build -t us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1 .
          automapSubstitutions: true
        images:
        - 'us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
      2. Inicie a compilação executando o seguinte comando:

        gcloud builds submit --region=us-west2 --config cloudbuild.yaml
        

      Quando a compilação estiver concluída, vai ver um resultado semelhante ao seguinte:

      DONE
      ------------------------------------------------------------------------------------------------------------------------------------
      ID                                    CREATE_TIME                DURATION  SOURCE          IMAGES          STATUS
      046ddd31-3670-4771-9336-8919e7098b11  2020-11-05T18:24:02+00:00  15S       gs://gcb-docs-project_cloudbuild/source/1604600641.576884-8153be22c94d438aa86c78abf11403eb.tgz  us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1  SUCCESS
      

      Acabou de criar quickstart-image com o ficheiro de configuração de compilação e enviou a imagem para o Artifact Registry.

      Veja os detalhes da compilação

      1. Abra a página do Cloud Build na Google Cloud consola.

        Abra a página do Cloud Build

      2. Se necessário, selecione o projeto e clique em Abrir.

        É apresentada a página Histórico de compilação:

        Captura de ecrã da página do histórico de compilação

      3. Se necessário, selecione us-west2no menu pendente Região para ver compilações nessa região.

        São apresentadas duas compilações, uma para cada uma das compilações que executou neste início rápido.

      4. Clique numa das compilações.

        É apresentada a página Detalhes da compilação.

      5. Para ver os artefactos da sua compilação, em Resumo da compilação, clique em Artefactos de compilação.

        Vai ver um resultado semelhante ao seguinte:

        Captura de ecrã dos artefactos de compilação

        Pode transferir o registo de compilação e ver os detalhes da imagem no Artifact Registry a partir desta página.

      Limpar

      Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.

      1. Abra a página do Artifact Registry na Google Cloud consola.

        Abra a página do Artifact Registry

      2. Selecione o projeto e clique em Abrir.

      3. Selecione quickstart-docker-repo.

      4. Clique em Eliminar.

      Eliminou o repositório que criou como parte deste início rápido.

      O que se segue?