Implantar serviços do código-fonte

Nesta página, descrevemos como implantar um novo serviço ou uma revisão de serviço no Cloud Run diretamente do código-fonte usando um único comando da CLI gcloud, gcloud run deploy com a sinalização --source. Para conferir um exemplo de como implantar um serviço Hello World, consulte Implantar usando os guias de início rápido da origem.

Nos bastidores, esse comando usa os buildpacks do Google Cloud e o Cloud Build para criar automaticamente imagens de contêiner a partir do código fonte sem instalar o Docker na máquina ou configurar os buildpacks ou o Cloud Build. Por padrão, o Cloud Run usa o tipo de máquina padrão fornecido pelo Cloud Build. Executar gcloud run deploy --source elimina a necessidade de executar também o comando gcloud builds submit.

Observe que as implantações de origem usam o Artifact Registry para armazenar contêineres criados. Se o projeto ainda não tiver um repositório do Artifact Registry com o nome cloud-run-source-deploy na região em que você está implantando, esse recurso cria automaticamente um repositório do Artifact Registry com o nome cloud-run-source-deploy de dados.

Se houver um Dockerfile no diretório de código-fonte, o código-fonte enviado será criado usando esse Dockerfile. Se nenhum Dockerfile estiver presente no diretório do código-fonte, os buildpacks do Google Cloud detectarão automaticamente a linguagem usada e buscarão as dependências do código para criar uma imagem de contêiner pronta para produção, usando uma imagem de base segura gerenciada pelo Google.

Por padrão, as correções de segurança só são aplicadas quando o serviço do Cloud Run é implantado. Quando você ativa as atualizações automáticas de segurança em um serviço, ele recebe patches automaticamente sem inatividade. Saiba mais sobre configurando atualizações de segurança.

Idiomas compatíveis

Além de fontes com um Dockerfile, é possível implantar da fonte com as seguintes linguagens usando os buildpacks do Google Cloud:

Ambiente de execução Implantação de origem Configuração do buildpack
Go Implantar um serviço Go Configurar buildpacks do Go
Node.js Implantar um serviço Node.js Configurar buildpacks do Node.js
Python Implantar um serviço Python Configurar buildpacks do Python
Java
(inclui Kotlin, Groovy e Scala)
Implantar um serviço Java Configurar buildpacks Java
.NET Implantar um serviço .NET Configurar buildpacks do .NET
Ruby Implantar um serviço Ruby Configurar buildpacks do Ruby
PHP Implantar um serviço PHP Configurar buildpacks do PHP

Leia mais detalhes sobre as versões de linguagem compatíveis.

Limitações deste recurso

  • A implantação da origem usa o Artifact Registry e o Cloud Build. Portanto, esse recurso só está disponível em regiões compatíveis com o Artifact Registry e o Cloud Build.
  • A implantação a partir da origem é um recurso prático e não permite a personalização completa do build. Para ter mais controle, crie a imagem do contêiner usando o Cloud Build (usando gcloud builds submit, por exemplo) e, em seguida, implante a imagem do contêiner (usando gcloud run deploy --image, por exemplo).
  • A implantação de origem com buildpacks do Google Cloud define a data da última modificação dos arquivos de origem como 1º de janeiro de 1980. Esse é o comportamento padrão dos buildpacks e foi projetado para ser compatível com builds reproduzíveis. Dependendo do framework da linguagem, isso pode afetar o armazenamento em cache de arquivos estáticos no navegador. Se o aplicativo for afetado por isso, o Google recomenda desativar os cabeçalhos HTTP etag e Last-Modified.
  • A implantação de origem com buildpacks do Google Cloud sempre usa gcr.io/buildpacks/builder:latest. Se a configuração de idioma ou SO de sua preferência não estiver disponível em latest, use um builder específico para criar uma imagem de aplicativo usando o builder que você preferir.
  • É possível implantar o serviço a partir da origem usando o Kotlin e outras linguagens da JVM, como Java. A linguagem usada precisa obedecer às seguintes regras:

    • É possível criar o aplicativo usando Maven ou Gradle.
    • O arquivo de build contém todos os plug-ins necessários para as classes de produto.

Antes de começar

  • Verifique se você configurou um novo projeto para o Cloud Run conforme descrito na página de configuração.
  • Se você precisa seguir uma política da organização de restrição de domínio que restringe invocações não autenticadas para seu projeto, será necessário acessar o serviço implantado, conforme descrito em Como testar serviços particulares.

  • Enable the Cloud Run Admin API and Cloud Build APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

    Depois que a API Cloud Run Admin for ativada, a conta de serviço padrão do Compute Engine será criadas automaticamente.

Funções exigidas

Você ou seu administrador precisa conceder à conta do implantador e à conta de serviço do Cloud Build os seguintes papéis do IAM.

Clique para conferir os papéis necessários para a conta do implantador

Para receber as permissões necessárias para criar e implantar a partir da origem, peça ao administrador para conceder a você os seguintes papéis do IAM:

Clique para conferir os papéis necessários para a conta de serviço do Cloud Build

O Cloud Build usa automaticamente a conta de serviço padrão do Compute Engine como a conta de serviço padrão do Cloud Build para criar seu código-fonte e recurso do Cloud Run, a menos que você substitua esse comportamento. Para que o Cloud Build crie suas origens, peça ao administrador para conceder o papel Criador do Cloud Run (roles/run.builder) à conta de serviço padrão do Compute Engine no seu projeto:

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@ \
      --role=roles/run.builder
  

Substitua PROJECT_NUMBER pelo número do projeto Google Cloude PROJECT_ID pelo ID do projeto Google Cloud. Para instruções detalhadas sobre como encontrar o ID e o número do projeto, consulte Criar e gerenciar projetos.

A concessão do papel de builder do Cloud Run à conta de serviço padrão do Compute Engine leva alguns minutos para se propagar.

Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com APIs doGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.

Implantar a partir da origem

Para fazer a implantação do código-fonte, clique na guia para ver instruções sobre como usar a ferramenta de sua escolha.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Mude para o diretório de origem. O diretório de origem usa um Dockerfile se estiver presente, embora não seja obrigatório.

  3. Crie e implante seu serviço:

    gcloud run deploy SERVICE --source .

    Substitua SERVICE pelo nome do serviço.

    Como opção, se o código-fonte usar um dos ambientes de execução de linguagem compatíveis e você quiser configurar atualizações automáticas de imagem de base para o ambiente de execução, especifique a flag --automatic-updates e a flag --base-image com a imagem de base do serviço, por exemplo, nodejs22.

  4. Responda a todas as solicitações para instalar as APIs necessárias respondendo ao y quando solicitado. Você só precisa fazer isso uma vez para um projeto. Responda a outras solicitações fornecendo a plataforma e a região, se você não tiver definido os padrões delas, conforme descrito na página de configuração.

  5. Aguarde a conclusão da criação e da implantação. Quando terminar, o Cloud Run vai mostrar uma mensagem de sucesso.

  6. Após a implantação, essa revisão de serviço atende a 100% do tráfego.

    Cloud Code

    Para implantar do código-fonte usando o Cloud Code, leia os guias do IntelliJ e do Visual Studio Code.

    CLI do Gemini

    Use o comando /deploy na ferramenta CLI do Gemini para implantar um serviço do Cloud Run com base no código-fonte.

    Para usar a CLI do Gemini com a extensão servidor do protocolo de contexto de modelo (MCP) do Cloud Run, siga estas etapas:

    1. Instale a versão mais recente da CLI do Gemini em um dos seguintes ambientes de desenvolvimento:

      • Terminal
      • Cloud Shell
      • VS Code usando o modo Agente do Gemini Code Assist (consulte a guia "VS Code")
    2. Instale a extensão do Cloud Run:

      gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
    3. Faça login na Google Cloud CLI:

      gcloud auth login
    4. Configure as Application Default Credentials:

      gcloud auth application-default login
    5. Mude para o diretório do código-fonte.

    6. Inicie a CLI do Gemini:

      gemini
    7. Crie e implante seu serviço:

      /deploy
      • Se for solicitado que você forneça o projeto Google Cloud , insira o nome do projeto.
      • Se for solicitado, selecione deploy_local_folder.
    8. Aguarde a conclusão da criação e da implantação. Quando terminar, o Cloud Run vai mostrar uma mensagem de sucesso.

    VS Code

    Para implantar um serviço do Cloud Run do código-fonte usando o VS Code com o modo agente do Gemini Code Assist, consulte como usar o comando /deploy.

    Para disponibilizar o servidor do protocolo de contexto de modelo (MCP) do Cloud Run para uso no modo Agente do Gemini Code Assist, adicione a seguinte configuração ao arquivo JSON de configurações do Gemini:

    "mcpServers":{
      "cloud-run": {
        "command": "npx",
        "args": ["-y", "@google-cloud/cloud-run-mcp"]
      }
    }

Como automatizar a criação a partir da fonte

Como prática recomendada para evitar alterações sem versão na fonte local, o Google recomenda que você implante automaticamente quando as alterações forem enviadas ao seu repositório Git. Para facilitar esse processo, é possível conectar e configurar a implantação contínua no serviço do Cloud Run. Ao conectar seus repositórios do GitHub ao Cloud Run, é possível configurar versões e implantar seus repositórios sem escrever Dockerfiles ou arquivos de criação.

Para configurar versões automatizadas, configure a automação conforme descrito na página de versões contínuas, certificando-se de escolher a opção de criar a fonte com os buildpacks.

A seguir

Depois de implantar um serviço do Cloud Run, é possível fazer o seguinte:

Saiba mais sobre as configurações de implantação de origem:

Automatize as compilações e as implantações dos serviços do Cloud Run usando os gatilhos do Cloud Build: