Como implantar a partir do código-fonte

Nesta página, descrevemos como implantar novos serviços e novas revisões no Cloud Run diretamente do código-fonte usando um único comando do SDK do Cloud, gcloud run deploy, com a sinalização --source.

Observe que o padrão de gcloud run deploy será a implantação de origem se você não fornecer as sinalizações --image ou --source.

Nos bastidores, esse comando usa os pacotes de criação do Google Cloud e o Cloud Build para criar automaticamente imagens de contêiner a partir do código-fonte sem ter que instalar o Docker na máquina ou configurar os pacotes de criação. ou o Cloud Build. Ou seja, o comando único descrito acima faz o que exigiria os comandos gcloud builds submit e gcloud run deploy.

Observe que as implantações de origem usam o Artifact Registry para armazenar contêineres compilados. 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.

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 pacotes de criação do Google Cloud detectarão automaticamente a linguagem que você está usando e buscará 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. Toda vez que você implanta, as correções de segurança necessárias são selecionadas automaticamente a partir da imagem base.

Idiomas compatíveis

Além de fontes com um Dockerfile, é possível implantar da fonte com as seguintes linguagens:

  • Go
  • Node.js
  • Python
  • Java
  • .NET Core

Leia mais detalhes sobre as versões de linguagens compatíveis no repositório de pacotes de builds das plataformas do Google.

Limitações deste recurso

  • A implantação da origem usa o Artifact Registry. Portanto, esse recurso só está disponível em regiões compatíveis com o Artifact Registry.
  • A implantação a partir da origem usando gcloud run deploy --source é 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).

Antes de começar

Verifique se você configurou um novo projeto para o Cloud Run conforme descrito na página de configuração.

Permissões necessárias para implantar

Para implantar a partir da origem, é necessário ter permissões para criar, armazenar a imagem do contêiner criada e implantar.

Você precisa ter UM dos seguintes papéis:

Como implantar

Para implantar a partir do código-fonte:

  1. Mude para o diretório de origem. Observe que o diretório de origem não requer um Dockerfile. No entanto, se um Dockerfile estiver presente, ele será usado.

  2. Crie e implante seu aplicativo:

    gcloud run deploy SERVICE --source .

    Substitua SERVICE pelo nome do serviço.

    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.

  3. Aguarde a conclusão da criação e da implantação. Quando terminar, uma mensagem semelhante a esta será exibida:

    Service [my-app] revision [my-app-00000-xxx] has been deployed and is serving 100 percent of traffic. Service URL: https://my-app-texampleq-uc.a.run.app

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

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 novo serviço, é possível realizar estas ações:

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