Visão geral
Neste laboratório, você vai criar uma imagem de contêiner do Docker com o código fornecido e um Dockerfile usando o Cloud Build. Depois, você vai fazer upload desse contêiner para o Artifact Registry.
Objetivos
Neste laboratório, você aprenderá a fazer o seguinte:
- Usar o Cloud Build para criar e enviar contêineres
- Usar o Artifact Registry para armazenar e implantar contêineres
Configuração do laboratório
Acessar o laboratório
Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período sem custo financeiro.
-
Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento.
No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:
- O botão Abrir console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Nome de usuário"}}}
Você também encontra o Nome de usuário no painel Detalhes do laboratório.
-
Clique em Seguinte.
-
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
{{{user_0.password | "Senha"}}}
Você também encontra a Senha no painel Detalhes do laboratório.
-
Clique em Seguinte.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: para acessar uma lista de produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo ou digite o nome do serviço ou produto no campo Pesquisar.
Após concluir as etapas iniciais de login, o painel do projeto vai aparecer.
Ative o Google Cloud Shell
O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud.
O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
-
No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

-
Clique em Continuar.
O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- Para listar o nome da conta ativa, use este comando:
gcloud auth list
Saída:
Credentialed accounts:
- @.com (active)
Exemplo de saída:
Credentialed accounts:
- google1623327_student@qwiklabs.net
- Para listar o ID do projeto, use este comando:
gcloud config list project
Saída:
[core]
project =
Exemplo de saída:
[core]
project = qwiklabs-gcp-44776a13dea667a6
Observação:
a documentação completa da gcloud está disponível no
guia com informações gerais sobre a gcloud CLI
.
Tarefa 1: verificar se as APIs necessárias estão ativadas
-
Anote o nome do seu projeto do Google Cloud. Ele está listado na barra superior do Console do Google Cloud e tem o formato qwiklabs-gcp-
seguido de números hexadecimais.
-
No console do Google Cloud, no Menu de navegação(
), clique em APIs e serviços.
-
Clique em Biblioteca.
-
Na caixa Pesquisar APIs e serviços, insira Cloud Build.
-
No card de resultados da API Cloud Build, se não houver uma mensagem confirmando que essa API está ativada, clique no botão Ativar.
-
Use o botão Voltar para retornar à tela anterior com a caixa de pesquisa. Na caixa de pesquisa, insira Artifact Registry.
-
No card de resultados da API Artifact Registry, se não houver uma mensagem confirmando que essa API está ativada, clique no botão Ativar.
Tarefa 2: criar contêineres com o Dockerfile e o Cloud Build
É possível escrever arquivos de configuração do build para fornecer instruções ao Cloud Build sobre quais tarefas executar ao criar um contêiner. Esses arquivos de build podem buscar dependências, executar testes de unidade, análises e muito mais. Nesta tarefa, você vai criar um Dockerfile que será usado como um script de configuração de build com o Cloud Build. Você também vai criar um script de shell simples (quickstart.sh) que vai representar um aplicativo dentro do contêiner.
-
Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell.
-
Quando solicitado, clique em Autorizar.
O Cloud Shell é aberto na parte de baixo da janela do console do Google Cloud.
- Crie um arquivo
quickstart.sh
vazio usando o editor de texto nano:
nano quickstart.sh
- Adicione as seguintes linhas ao arquivo
quickstart.sh
:
#!/bin/sh
echo "Hello, world! The time is $(date)."
-
Salve o arquivo e feche o nano pressionando CTRL+X, depois Y e Enter.
-
Crie um arquivo Dockerfile
vazio usando o editor de texto nano:
nano Dockerfile
- Adicione o seguinte comando do Dockerfile:
FROM alpine
Isso instrui o build a usar a imagem de base do Alpine Linux.
- Adicione o seguinte comando ao final do Dockerfile:
COPY quickstart.sh /
Isso adiciona o script quickstart.sh
ao diretório / da imagem.
- Adicione o seguinte comando ao final do Dockerfile:
CMD ["/quickstart.sh"]
Isso configura a imagem para executar o script /quickstart.sh
quando o contêiner associado é criado e executado.
O Dockerfile deve ficar assim:
FROM alpine
COPY quickstart.sh /
CMD ["/quickstart.sh"]
-
Salve o arquivo e feche o nano pressionando CTRL+X, depois Y e Enter.
-
No Cloud Shell, execute o comando a seguir para tornar o script quickstart.sh
executável:
chmod +x quickstart.sh
- Crie um novo repositório do Docker chamado
quickstart-docker-repo
no local , com a descrição "Repositório do Docker":
gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
--location={{{project_0.default_region | "REGION"}}} --description="Docker repository"
- No Cloud Shell, execute o comando a seguir para criar a imagem do contêiner do Docker no Cloud Build:
gcloud builds submit --tag {{{project_0.default_region | "REGION"}}}-docker.pkg.dev/${DEVSHELL_PROJECT_ID}/quickstart-docker-repo/quickstart-image:tag1
Quando a criação for concluída, a imagem Docker será criada e enviada ao Artifact Registry.
- Na barra de pesquisa na parte de cima do console do Google Cloud, faça uma busca por Artifact Registry.
Observação: se a caixa de pesquisa não aparecer, clique no ícone de lupa.
Observação: talvez apareça uma mensagem de pop-up informando que Navegar para outra tela vai redefinir sua exibição. Clique no botão Entendi para continuar.
- Clique no repositório
quickstart-docker-repo
.
A imagem Docker quickstart-image
vai aparecer na lista.
Tarefa 3: criar contêineres com um arquivo de configuração do build e o Cloud Build
O Cloud Build também oferece suporte para arquivos de configuração do build personalizados. Nesta tarefa, você vai incorporar um contêiner do Docker usando um arquivo de build personalizado, formatado em YAML, com o Cloud Build.
Vamos criar um arquivo personalizado de configuração do Cloud Build chamado cloudbuild.yaml
.
- Crie e abra um arquivo chamado
cloudbuild.yaml
com nano usando o seguinte comando:
nano cloudbuild.yaml
- Depois que o nano estiver aberto, cole o seguinte no arquivo
cloudbuild.yaml
:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
images:
- 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
-
Pressione Ctrl+O e, em seguida, pressione Enter para salvar o arquivo editado.
-
Pressione Ctrl+X para sair do editor de texto nano.
-
Execute o comando abaixo para definir a variável de região e inserir esse valor no arquivo yaml.
export REGION={{{project_0.default_region | "REGION"}}}
sed -i "s/YourRegionHere/$REGION/g" cloudbuild.yaml
- No Cloud Shell, execute o seguinte comando para acessar o conteúdo do arquivo
cloudbuild.yaml
:
cat cloudbuild.yaml
Você verá o seguinte:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', '{{{project_0.default_region | "REGION"}}}-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
images:
- '{{{project_0.default_region | "REGION"}}}-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
Esse arquivo instrui o Cloud Build a usar o Docker para criar uma imagem com a especificação do Dockerfile no diretório local atual, marcá-la com gcr.io/$PROJECT_ID/quickstart-image
($PROJECT_ID
, que é uma variável de substituição preenchida automaticamente pelo Cloud Build com o ID do projeto associado) e enviar essa imagem para o Artifact Registry.
- No Cloud Shell, execute o seguinte comando para iniciar o Cloud Build usando
cloudbuild.yaml
como o arquivo de configuração do build:
gcloud builds submit --config cloudbuild.yaml
A saída do build no Cloud Shell deve ser a mesma de antes. Quando a criação for concluída, uma nova versão da mesma imagem será enviada ao Artifact Registry.
-
Na barra de pesquisa na parte de cima do console do Google Cloud, faça uma busca por Artifact Registry.
-
Nos resultados da pesquisa, clique em Artifact Registry.
-
Clique no repositório quickstart-docker-repo > quickstart-image.
Agora, duas versões de quickstart-image
estão na lista.
Selecione Verificar meu progresso para conferir o objetivo.
Crie duas imagens de contêiner no Cloud Build
-
Na barra de pesquisa na parte de cima da janela do console do Google Cloud, faça uma busca por Cloud Build.
-
Nos resultados da pesquisa, clique em Cloud Build.
-
Em Cloud Build, clique em Histórico.
Dois builds vão aparecer na lista.
-
Clique no ID do primeiro build da lista.
Os detalhes do build, incluindo o registro do build, são exibidos.
Tarefa 4: criar e testar contêineres com um arquivo de configuração do build e o Cloud Build
A vantagem de usar arquivos de configuração de build personalizados é que,
além de criar contêineres, eles podem executar outras ações paralelamente ou em sequência,
como executar testes em contêineres recém-criados,
enviá-los para vários destinos e até implantá-los
no Kubernetes Engine.
Neste laboratório, veremos um exemplo simples:
um arquivo de configuração de build que testa o contêiner que criou e informa
o resultado para o ambiente da chamada.
A primeira etapa é alterar o arquivo quickstart.sh
.
-
No Cloud Shell, abra quickstart.sh
no nano.
nano quickstart.sh
-
Substitua o atual pelo seguinte:
#!/bin/sh
if [ -z "$1" ]
then
echo "Hello, world! The time is $(date)."
exit 0
else
exit 1
fi
-
Pressione Ctrl+O e, em seguida, pressione Enter para salvar o arquivo editado.
-
Pressione Ctrl+X para sair do editor de texto nano.
Vamos criar um novo arquivo personalizado de configuração do Cloud Build chamado cloudbuild2.yaml
. Ele sofreu pequenas mudanças para demonstrar a capacidade que o Cloud Build tem de testar os contêineres criados.
- Crie e abra um arquivo chamado
cloudbuild2.yaml
com nano usando o seguinte comando:
nano cloudbuild2.yaml
- Depois que o nano estiver aberto, cole o seguinte no arquivo
cloudbuild2.yaml
:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
- name: 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
args: ['fail']
images:
- 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
-
Pressione Ctrl+O e, em seguida, pressione Enter para salvar o arquivo editado.
-
Pressione Ctrl+X para sair do editor de texto nano.
-
Execute o comando abaixo para inserir o valor da região no arquivo yaml.
sed -i "s/YourRegionHere/$REGION/g" cloudbuild2.yaml
- No Cloud Shell, execute o seguinte comando para acessar o conteúdo do arquivo
cloudbuild2.yaml
:
cat cloudbuild2.yaml
Você verá o seguinte:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', '{{{project_0.default_region | "REGION"}}}-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
- name: 'gcr.io/$PROJECT_ID/quickstart-image'
args: ['fail']
images:
- '{{{project_0.default_region | "REGION"}}}-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
Além das ações anteriores, esse arquivo de configuração do build executa o quickstart-image
que ele criou. Nessa tarefa, o script quickstart.sh
foi modificado para simular uma falha no teste ao receber um argumento ['fail']
.
- No Cloud Shell, execute o seguinte comando para iniciar o Cloud Build usando
cloudbuild.yaml
como o arquivo de configuração do build:
gcloud builds submit --config cloudbuild2.yaml
Será exibida uma saída do comando que termina com um texto assim:
Saída
BUILD FAILURE: Build step failure: build step 1 "us-east1-docker.pkg.dev/qwiklabs-gcp-02-1c7ba5c697a0/quickstart-docker-repo/quickstart-image:tag1" failed: starting step container failed: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "fail": executable file not found in $PATH: unknown
ERROR: (gcloud.builds.submit) build 96c4a454-be06-4010-aa7c-da57c14165f4 completed with status "FAILURE"
- Confirme se o shell de comando sabe que o build falhou:
echo $?
O comando vai responder com um valor diferente de zero. Se você tivesse integrado esse build a um script, ele poderia reagir à falha do build.
Selecione Verificar meu progresso para conferir o objetivo.
Crie e teste contêineres com um arquivo de configuração do build e o Cloud Build
Finalize o laboratório
Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.
Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.
O número de estrelas indica o seguinte:
- 1 estrela = muito insatisfeito
- 2 estrelas = insatisfeito
- 3 estrelas = neutro
- 4 estrelas = satisfeito
- 5 estrelas = muito satisfeito
Feche a caixa de diálogo se não quiser enviar feedback.
Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.
Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.