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
. A 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 sobre o 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 oferece um conjunto de Buildpacks compatíveis com CNCF que criam código-fonte em imagens de contêiner projetadas para serem nas 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 para o Knative serving, consulte Contrato do contêiner.
Para implantar seus contêineres criados no Knative serving, siga Implantação de Serviços.
Para automatizar os builds e implantações do Knative serving serviços usando gatilhos do Cloud Build, configure a implantação contínua.