O Cloud Run oferece suporte à implantação direta de código-fonte. No entanto, também é possível criar o código-fonte em uma imagem de contêiner e implantar essa imagem no Cloud Run. É possível usar imagens de contêiner para qualquer recurso do Cloud Run.
Casos de uso comuns para desacoplar operações de build e implantação:
- Integração e entrega contínuas: os desenvolvedores criam e enviam código para um repositório de origem. Um sistema de CI/CD cria automaticamente esse código-fonte em um contêiner, executa testes e o implanta automaticamente em um ambiente de preparo.
- Infraestrutura como código: os recursos do Cloud Run gerenciados com YAML ou Terraform fazem referência a um URL de imagem de contêiner. O código-fonte escrito pelos desenvolvedores precisa ser criado em uma imagem de contêiner.
Você pode usar qualquer sistema para criar um contêiner. Nesta página, descrevemos as seguintes maneiras de usar o Cloud Build para criar imagens de contêiner:
Requisitos para serviços do Cloud Run
Para serviços do Cloud Run, é possível usar imagens de contêiner criadas com qualquer ferramenta capaz de
criar imagens de contêiner, desde que elas respeitem o contrato do contêiner.
Especificamente, o código precisa detectar solicitações HTTP na porta definida pela
variável de ambiente PORT
. Essa variável de ambiente PORT
é injetada automaticamente pelo Cloud Run no contêiner.
Antes de começar
Você precisa da CLI do Google Cloud para executar alguns dos comandos desta página.
Crie um repositório em um Container Registry com suporte. Para Crie um repositório do Artifact Registry, executar:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --async
É possível configurar o Docker para ter acesso ao Artifact Registry usando o auxiliar de credenciais da gcloud CLI:
Substituagcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATION
pelo nome da região do repositório de contêineres, por exemplo,us-west2
.
Criar usando um Dockerfile
Antes de criar as origens em uma imagem de contêiner ("conteinerização") usando o Docker ou o Cloud Build, é preciso que um Dockerfile esteja presente nas origens. As amostras do Hello World contêm aplicativos de amostra e Dockerfiles em muitas linguagens conhecidas.
Se você usa Dockerfiles, use um dos seguintes métodos para criar:
- Criar usando o Cloud Build.
- Criar localmente usando o Docker.
Criar usando o Cloud Build.
É possível criar sua imagem em Google Cloud usando o Cloud Build:
Navegue até a pasta que contém suas fontes e o Dockerfile.
Execute o comando:
gcloud builds submit --tag IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para dicas sobre como melhorar o desempenho do build, consulte Como acelerar os builds
Criar localmente e enviar usando o Docker
Se você tiver o Docker instalado localmente,
pode usar docker build
em vez de usar o Cloud Build ou os buildpacks do Google Cloud.
Para criar a imagem de contêiner usando o Docker, siga estas etapas:
Navegue até a pasta que contém suas origens e
Dockerfile
.Execute o comando:
docker build . --tag IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Se você estiver usando um Mac com o Apple Silicon, precisará especificar
--platform linux/amd64
na linha de comando.Envie a imagem do contêiner para um Container Registry com suporte:
docker push IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para excluir os arquivos locais desse processo, siga as
instruções do
arquivo de configuração .dockerignore
.
Criar usando os buildpacks do Google Cloud
Os buildpacks do Google Cloud são um conjunto de Buildpacks compatíveis com CNCF que criam o código-fonte em imagens de contêiner projetadas para serem executadas em Google Cloud plataformas de contêiner, incluindo o Cloud Run.
Para ver uma lista de linguagens compatíveis, consulte a documentação de pacotes de criação do Google Cloud.
Criar com os buildpacks do Google Cloud usando o Cloud Build
Para criar com os buildpacks do Google Cloud:
Navegue até a pasta que contém as origens.
Execute o comando:
gcloud builds submit --pack image=IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Aguarde a conclusão da criação.
Como criar com os buildpacks do Google Cloud usando a linha de comando pack
Para criar usando o comando pack:
Instale o Docker, caso ainda não tenha instalado.
Instale o
pack
, caso ainda não tenha feito isso.Navegue até a pasta que contém as origens.
Execute o seguinte comando para criar e enviar por push para o Container Registry com suporte:
pack build --publish IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Aguarde a conclusão de
pack
.
Para mais informações, leia as instruções em Como criar um aplicativo.
A seguir
Para implantar seus contêineres compilados no Cloud Run, consulte Como implantar serviços.
Saiba como criar e atualizar jobs do Cloud Run usando a imagem de contêiner criada.
Após a criação do contêiner, é possível testar localmente antes de implantar no Cloud Run. Consulte Como testar um serviço do Cloud Run localmente para saber mais.
Depois de criar ou atualizar um job usando o contêiner criado, saiba como executar o job como uma única vez, em uma programação ou como parte de um fluxo de trabalho.
Para automatizar as compilações e implantações dos serviços do Cloud Run usando os gatilhos do Cloud Build, consulte Configurar a implantação contínua.
Para executar builds de contêineres ideais para o aplicativo Java, consulte Como criar contêineres Java com Jib.