Criar contentores

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:

  1. Navegue para a pasta que contém as suas origens e o Dockerfile.

  2. 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:

  1. Navegue para a pasta que contém as suas fontes e Dockerfile.

  2. Execute o comando:

    docker build . --tag IMAGE_URL

    Substitua IMAGE_URL por uma referência à imagem do contentor, por exemplo, gcr.io/cloudrun/hello.

  3. 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.

  4. 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:

  1. Navegue para a pasta que contém as suas fontes.

  2. 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.

  3. Aguarde pela conclusão da compilação.

Compilar com o Buildpack através da linha de comandos pack

Para criar usando o comando pack:

  1. Se ainda não o fez, instale o Docker.

  2. 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.

  3. Se ainda não o fez, instale o pack.

  4. Navegue para a pasta que contém as suas fontes.

  5. 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.

  6. 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.