Configurar imagens de build e execução

Os buildpacks usam um builder padrão, que consiste em todos os componentes necessários para executar um build do seu serviço, incluindo imagens de build e de execução:

  • Imagem de build: usada pela imagem de builder para criar o ambiente de build em que o ciclo de vida de buildpacks é executado. É aqui que seu aplicativo ou função é preparado para a conteinerização.
  • Imagem de execução: a imagem base de onde a imagem do contêiner do serviço é criada. Essa é a imagem que hospeda o aplicativo ou a função que você criou.

As duas imagens podem ser personalizadas e estendidas para atender às suas necessidades. Por exemplo, é possível personalizar imagens para adicionar os pacotes necessários para criar seu serviço ou instalar pacotes do sistema para que eles estejam disponíveis quando o serviço for executado.

Antes de começar

Use a CLI do pack para criar localmente o serviço em uma imagem de contêiner.

Antes de começar

  1. Instale o Docker Community Edition (CE) na estação de trabalho. O Docker é usado pela pack como um builder de imagens OCI.
  2. Instale a CLI Pack.
  3. Instale a ferramenta de controle de origem Git para buscar a amostra de aplicativo do GitHub.

Personalizar as imagens de build e execução

Os buildpacks usam uma imagem de builder para criar seu serviço em uma imagem de contêiner. Quando o processo de build é concluído, seu aplicativo ou função é inserido em uma imagem de execução. Saiba mais sobre o processo de build em Conceitos dos buildpacks.

Como estender a imagem de builder

Para personalizar a imagem de builder padrão:

  1. Crie um builder.Dockerfile personalizado com base na imagem de builder padrão. Você precisa especificar a tag para a versão do builder que oferece suporte à sua imagem base. Por exemplo, a tag de imagem base :v1 não é compatível com a tag :google-22.

    Exemplo:

    FROM gcr.io/buildpacks/builder
    USER root
    RUN apt-get update && apt-get install -y --no-install-recommends \
      subversion && \
      apt-get clean && \
      rm -rf /var/lib/apt/lists/*
    USER cnb
    
  2. Crie sua imagem de builder personalizado com base no arquivo builder.Dockerfile:

    docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
    

    Substitua BUILDER_IMAGE_NAME pelo nome que você escolheu para a imagem de builder personalizada.

  3. Execute o comando pack build com a imagem de builder personalizada para criar a nova imagem de contêiner do seu aplicativo ou função:

    pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
    

    Substitua:

    • SERVICE_IMAGE_NAME pelo nome que você escolheu para a imagem do aplicativo ou da função.
    • BUILDER_IMAGE_NAME pelo nome da imagem de builder personalizada.

Como estender a imagem de execução

Para personalizar a imagem de contêiner de execução padrão:

  1. Crie um run.Dockerfile personalizado com base na imagem de execução padrão. É preciso especificar a tag da versão do builder que oferece suporte à sua imagem de execução. Por exemplo, a tag de imagem de execução :v1 não é compatível com a tag :google-22.

    Exemplo:

    FROM gcr.io/buildpacks/gcp/run
    USER root
    RUN apt-get update && apt-get install -y --no-install-recommends \
      imagemagick && \
      apt-get clean && \
      rm -rf /var/lib/apt/lists/*
    USER 33:33
    
  2. Crie a imagem de execução personalizada com base no arquivo run.Dockerfile:

    docker build -t RUN_IMAGE_NAME -f run.Dockerfile .
    

    Substitua RUN_IMAGE_NAME pelo nome que você escolheu para sua imagem de execução personalizada.

  3. Execute o comando pack build com a imagem de execução personalizada para criar a nova imagem de contêiner do seu aplicativo ou função:

    pack build SERVICE_IMAGE_NAME --builder gcr.io/buildpacks/builder:v1 --run-image RUN_IMAGE
    

    Substitua:

    • SERVICE_IMAGE_NAME pelo nome que você escolheu para a imagem do aplicativo ou da função.
    • RUN_IMAGE_NAME pelo nome da imagem de execução personalizada.