O Knative serving aceita 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 Knative serving no seu contentor.
Esta página descreve várias formas de criar imagens de contentores:
- Usar um ficheiro Dockerfile
- Usar buildpacks
Criar com um Dockerfile
Se usar ficheiros Dockerfile, pode usar qualquer um dos seguintes métodos para criar:
- Crie com o Cloud Build
- Crie localmente com o Docker
Criar com o Cloud Build
Para criar a imagem no Google Cloud:
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,
gcr.io/cloudrun/hello
.
Para obter instruções detalhadas sobre o Cloud Build, consulte o artigo Implementar no Knative Serving.
Para ver sugestões sobre como melhorar o desempenho da compilação, consulte o artigo Acelerar as compilações
Compilar localmente e enviar através do Docker
Se tiver o Docker instalado localmente, pode usar o docker build
em vez de usar o Cloud Build ou os Buildpacks.
Antes de criar as suas origens numa imagem de contentor ("contentorizar") com o Docker, precisa de um Dockerfile presente juntamente com as suas origens. As instruções seguintes usam o Container Registry como o registo de imagens.
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,
gcr.io/cloudrun/hello
.Se ainda não configurou o Docker para usar a Google Cloud CLI para autenticar pedidos ao Container Registry, faça-o agora através do comando:
gcloud auth configure-docker
Tem de o fazer antes de poder enviar ou extrair imagens através do Docker. Só tem de o fazer uma vez.
Envie a imagem de contentor para o Container Registry:
docker push IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
.
Para excluir ficheiros locais deste processo, siga as instruções do
.dockerignore
ficheiro de configuração.
Criar com Buildpacks
Para obter informações completas sobre os Buildpacks, consulte o Website dos Buildpacks. A Google fornece 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 Knative serving.
Estas plataformas são atualmente suportadas:
- Ir
- Node.js
- Python
- Java
- .NET Core
Criar com Buildpacks usando o Cloud Build
Para criar com um Buildpack:
Navegue para a pasta que contém as suas fontes.
Execute o comando:
gcloud builds submit --pack image=IMAGE_URL
Substitua IMAGE_URL pelo URL da imagem do contentor, por exemplo,
gcr.io/myproject/myservice
.Aguarde pela conclusão da compilação.
Compilar com o Buildpack através da linha de comandos pack
Para criar usando o comando pack:
Se ainda não o fez, instale o Docker.
Se ainda não configurou o Docker para usar a Google Cloud CLI para autenticar pedidos ao Container Registry, faça-o agora através do comando:
gcloud auth configure-docker
Tem de o fazer antes de poder enviar ou extrair imagens através do Docker. Só tem de o fazer uma vez.
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:
pack build --publish IMAGE_URL
Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
.Aguarde até que
pack
termine.
Para mais informações, leia as instruções em Criar uma aplicação.
O que se segue?
Para saber mais sobre o contrato que os seus contentores têm de respeitar para serem implementados no Knative Serving, consulte o contrato de contentores.
Para implementar os contentores criados no Knative Serving, siga as instruções em Implementar serviços.
Para automatizar as compilações e as implementações dos seus serviços do Knative Serving através dos acionadores do Cloud Build, configure a implementação contínua.