O Cloud Run aceita imagens de contêiner criadas com qualquer ferramenta capaz de compilar imagens de contêiner, desde que elas respeitem o contrato do contêiner.
Especificamente, seu 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.
Nesta página, você verá várias maneiras de criar imagens de contêiner:
- usando um Dockerfile;
- e usando o Buildpacks.
Como 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.
Como criar usando o Cloud Build
É possível compilar sua imagem no 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
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 tem o formatoREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Para dicas sobre como melhorar o desempenho do build, consulte Como acelerar os builds
Como criar localmente e enviar usando o Docker
Se você tiver o Docker instalado localmente, use
docker build
em vez de usar o Cloud Build ou o Buildpacks.
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
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 tem o formatoREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Se você ainda não configurou o Docker para usar a CLI do Google Cloud na autenticação de solicitações para o Container Registry, faça isso agora usando o comando:
gcloud auth configure-docker
É preciso fazer isso antes de enviar ou receber imagens usando o Docker. Não será necessário repetir essa ação.
Envie a imagem do contêiner para um registro de contêiner compatível:
docker push IMAGE_URL
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 tem o formatoREGION-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
.
Como criar com 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 plataformas de contêiner do Google Cloud, incluindo o Cloud Run.
Para ver uma lista de linguagens compatíveis, consulte a documentação de pacotes de criação do Google Cloud.
Como 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 pelo URL da imagem de contêiner. Por exemplo,
gcr.io/myproject/myservice
.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 (em inglês), caso ainda não tenha instalado.
Se você ainda não configurou o Docker para usar a CLI do Google Cloud na autenticação de solicitações para o Container Registry, faça isso agora usando o comando:
gcloud auth configure-docker
É preciso fazer isso antes de enviar ou receber imagens usando o Docker. Não será necessário repetir essa ação.
Instale o
pack
(em inglês), caso ainda não tenha feito isso.Navegue até a pasta que contém as origens.
Execute este comando para criar e enviar para o Container Registry:
pack build --publish IMAGE_URL
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 tem o formatoREGION-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
- 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.
- Para saber mais sobre o contrato que seus contêineres precisam respeitar para serem implantados no Cloud Run, consulte Contrato do contêiner.
- Para implantar seus contêineres compilados no Cloud Run, consulte Como implantar serviços.
- 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.