O Knative serving aceita 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 Knative serving 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
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
Para criar a imagem no Google Cloud:
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,
gcr.io/cloudrun/hello
;
Para instruções detalhadas do Cloud Build, consulte Como implantar no Knative serving.
Para dicas sobre como melhorar o desempenho da compilação, consulte Como acelerar suas compilações.
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.
Antes de criar as origens em uma imagem de contêiner ("contentorização") usando o Docker, é preciso que um Dockerfile esteja presente nas origens. As instruções a seguir usam o Container Registry como o registro de imagens.
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,
gcr.io/cloudrun/hello
;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.
Para enviar a imagem de contêiner para o Container Registry:
docker push IMAGE_URL
IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
gcr.io/cloudrun/hello
;
Para excluir os arquivos locais desse processo, siga as
instruções do
arquivo de configuração .dockerignore
.
Como criar usando o Buildpacks
Para ver as informações completas sobre o Buildpacks, consulte o site do Buildpacks (em inglês). O Google fornece um conjunto de pacotes de criação 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 Knative serving.
As seguintes plataformas são compatíveis no momento:
- Go
- Node.js
- Python
- Java
- .NET Core
Como criar com o Buildpacks usando o Cloud Build
Para criar com um Buildpack:
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 o Buildpack 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
Substitua IMAGE_URL por uma referência à imagem de contêiner. Por exemplo,
gcr.io/cloudrun/hello
.Aguarde a conclusão de
pack
.
Para mais informações, leia as instruções em Como criar um aplicativo.
A seguir
Para saber mais sobre o contrato que seus contêineres precisam respeitar para serem implantados no Knative serving, consulte Contrato do contêiner.
Para implantar contêineres criados no Knative serving, siga Como implantar serviços.
Para automatizar as criações e implantações dos serviços do Knative serving usando gatilhos do Cloud Build, configure a implantação contínua.