Criar e enviar uma imagem do Docker com o Cloud Build
Saiba como começar a usar o Cloud Build criando uma imagem do Docker e enviando a imagem ao Artifact Registry. O Artifact Registry fornece um único local para gerenciar imagens particulares de contêiner do Docker e pacotes.
Primeiro, você cria a imagem usando um Dockerfile, que é o arquivo de configuração do Docker,
depois cria a mesma imagem usando o
arquivo de configuração do Cloud Build.
Para seguir as instruções da tarefa diretamente no editor do Cloud Shell, clique em Orientação:
Antes de começar
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
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
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
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.
- 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
-
In the Google Cloud console, go to the IAM page.
Acessar o IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Na lista Selecionar um papel, escolha um.
- Para conceder outros papéis, adicione-os clicando em Adicionar outro papel.
- Clique em Salvar.
Abra uma janela de terminal.
Crie um novo diretório chamado
quickstart-dockere navegue até ele:mkdir quickstart-docker cd quickstart-dockerCrie um arquivo chamado
quickstart.shcom o seguinte conteúdo:Crie um arquivo chamado
Dockerfilecom o seguinte conteúdo:Na janela do terminal, execute o seguinte comando para tornar
quickstart.shexecutável:chmod +x quickstart.shCrie um novo repositório do Docker denominado
quickstart-docker-repono localus-west2e com a descrição "repositório do Docker":gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"Verifique se o repositório foi criado:
gcloud artifacts repositories listVocê verá
quickstart-docker-repona lista de repositórios exibidos.Para receber o ID do projeto Google Cloud , execute o seguinte comando:
gcloud config get-value projectExecute o seguinte comando no diretório que contém
quickstart.sheDockerfile:gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1No mesmo diretório que contém
quickstart.sheDockerfile, crie um arquivo chamadocloudbuild.yamlcom o seguinte conteúdo. Esse arquivo é o arquivo de configuração da versão. No momento da criação, o Cloud Build substitui automaticamente$PROJECT_IDpelo ID do projeto.Inicie o build executando o seguinte comando:
gcloud builds submit --region=us-west2 --config cloudbuild.yamlAbra a página do Cloud Build no Google Cloud console.
Se necessário, selecione o projeto e clique em Abrir.
Você verá a página Histórico da versão:
Se necessário, selecione
us-west2no menu suspenso Região para conferir os builds nessa região.Duas builds vão aparecer, uma para cada build executada neste guia de início rápido.
Clique em um dos builds.
Você verá a página Detalhes do build:
Para ver os artefatos de criação, em Resumo da build, clique em Artefatos da build.
Você verá um resultado semelhante a este:
Nesta página, faça o download do seu registro da build e veja os detalhes da imagem no Artifact Registry.
Abra a página do Artifact Registry no console do Google Cloud .
Selecione o projeto e clique em Abrir.
Selecione quickstart-docker-repo.
Clique em Excluir.
- Saiba como executar uma imagem do Docker.
- Saiba como criar um arquivo de configuração do build básico.
- Saiba como implantar usando o Cloud Build.
- Saiba como criar aplicativos Node.js.
- Saiba como criar aplicativos Java.
- Saiba como criar aplicativos Go.
Preparar os arquivos de origem para o build
Você precisará de um código-fonte de amostra para empacotar em uma imagem do contêiner. Nesta seção, você vai criar um script de shell e um
Dockerfile. UmDockerfileé um documento de texto que contém instruções para o Docker criar uma imagem.Criar um repositório do Docker no Artifact Registry
Criar uma imagem usando o Dockerfile
O Cloud Build torna possível que você crie uma imagem do Docker usando um
Dockerfile. Você não precisa de um arquivo de configuração separado do Cloud Build.Para criar usando um
Dockerfile:Após a conclusão da build, você verá uma resposta semelhante a esta:
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 SUCCESSVocê acabou de criar uma imagem do Docker chamada
quickstart-imageusando umDockerfilee enviou a imagem para o Artifact Registry.Criar uma imagem usando um arquivo de configuração do build
Nesta seção, você usará um arquivo de configuração do Cloud Build para criar a mesma imagem do Docker como acima. O arquivo de configuração de build instrui o Cloud Build a realizar tarefas com base nas suas especificações.
Quando a criação for concluída, você verá um resultado semelhante a este:
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 SUCCESSVocê acabou de criar
quickstart-imageusando o arquivo de configuração da versão e enviou a imagem para o Artifact Registry.Ver detalhes do build
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
Você já excluiu o repositório criado como parte deste guia de início rápido.
A seguir
-