O Cloud Run suporta a implementação direta de código-fonte. No entanto, também pode compilar o código-fonte numa imagem de contentor e, em seguida, implementar esta imagem de contentor no Cloud Run. Pode usar imagens de contentores para qualquer recurso do Cloud Run.
Exemplos de utilização comuns para desassociar as operações de compilação e implementação:
- Integração e entrega contínuas: os programadores criam e enviam código para um repositório de origem. Um sistema de CI/CD compila automaticamente este código-fonte num contentor, executa testes e implementa-o automaticamente num ambiente de preparação.
- Infraestrutura como código: os recursos do Cloud Run geridos através de YAML ou Terraform fazem referência a um URL de imagem de contentor. O código-fonte escrito pelos programadores tem de ser incorporado numa imagem de contentor.
Pode usar qualquer sistema que queira para criar um contentor. Esta página descreve as seguintes formas de usar o Cloud Build para criar imagens de contentores:
Requisitos para serviços do Cloud Run
Para os serviços do Cloud Run, pode usar imagens de contentores criadas com qualquer ferramenta capaz de criar imagens de contentores, desde que respeitem o contrato de contentores.
Em particular, o seu código tem de ouvir pedidos HTTP na porta definida pela variável de ambiente PORT
. Esta variável de ambiente PORT
é injetada automaticamente pelo Cloud Run no seu contentor.
Antes de começar
Precisa da CLI do Google Cloud para executar alguns dos comandos nesta página.
Crie um repositório num registo de contentores suportado. Para criar um repositório do Artifact Registry, execute o seguinte comando:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --async
Pode configurar o Docker para aceder ao Artifact Registry através do auxiliar de credenciais da CLI gcloud:
Substituagcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATION
pelo nome da região do seu repositório de contentores, por exemplo,us-west2
.
Crie com um Dockerfile
Antes de criar as suas origens numa imagem de contentor ("colocar num contentor") localmente com o Docker ou o Cloud Build, precisa de um Dockerfile presente juntamente com as suas origens. Os exemplos do Hello World contêm aplicações de exemplo e Dockerfiles em muitos idiomas populares.
Se usar ficheiros Dockerfile, pode usar um dos seguintes métodos para criar:
- Crie com o Cloud Build
- Crie localmente com o Docker
Crie com o Cloud Build
Pode criar a sua imagem no Google Cloud usando o Cloud Build:
Navegue para a pasta que contém as suas origens e o Dockerfile.
Execute o comando:
gcloud builds submit --tag IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para ver sugestões sobre como melhorar o desempenho da compilação, consulte o artigo Acelerar as compilações
Crie localmente e envie com o Docker
Se tiver o Docker instalado localmente, pode usar o docker build
em vez de usar o Cloud Build ou os buildpacks do Google Cloud.
Para criar a imagem de contentor com o Docker:
Navegue para a pasta que contém as suas fontes e
Dockerfile
.Execute o comando:
docker build . --tag IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Tenha em atenção que, se estiver a usar um Mac com silício da Apple, tem de especificar
--platform linux/amd64
na linha de comandos.Envie a imagem de contentor para um registo de contentores suportado:
docker push IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para excluir ficheiros locais deste processo, siga as instruções do
.dockerignore
ficheiro de configuração.
Crie com os buildpacks do Google Cloud
Os buildpacks da Google Cloud são um conjunto de buildpacks compatíveis com a CNCF que compilam código fonte em imagens de contentores concebidas para serem executadas em Google Cloud plataformas de contentores, incluindo o Cloud Run.
Para ver uma lista dos idiomas suportados, consulte a documentação dos buildpacks do Google Cloud
Crie com os buildpacks do Google Cloud através do Cloud Build
Para criar com os buildpacks do Google Cloud:
Navegue para a pasta que contém as suas fontes.
Execute o comando:
gcloud builds submit --pack image=IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Aguarde pela conclusão da compilação.
Crie com os buildpacks do Google Cloud através da pack
linha de comandos
Para criar usando o comando pack:
Se ainda não o fez, instale o Docker.
Se ainda não o fez, instale o
pack
.Navegue para a pasta que contém as suas fontes.
Execute o seguinte comando para criar e enviar para o seu registo de contentores suportado:
pack build --publish IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Aguarde até que
pack
termine.
Para mais informações, leia as instruções em Criar uma aplicação.
O que se segue?
Para implementar os contentores criados no Cloud Run, siga as instruções em Implementar serviços.
Saiba como criar e atualizar tarefas do Cloud Run a partir da imagem de contentor criada.
Depois de criar o contentor, pode testá-lo localmente antes da implementação no Cloud Run. Consulte o artigo Testar um serviço do Cloud Run localmente para saber mais.
Depois de criar ou atualizar uma tarefa com o contentor criado, veja como executar a tarefa como uma ação única, de acordo com uma programação ou como parte de um fluxo de trabalho.
Para automatizar as compilações e as implementações dos seus serviços do Cloud Run com os acionadores do Cloud Build, configure a implementação contínua.
Para fazer compilações de contentores ideais para a aplicação Java, consulte o artigo Criar contentores Java com o Jib.