Configure as imagens de compilação e execução

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

  • Imagem de compilação: usada pela imagem do criador para criar o ambiente de compilação onde o ciclo de vida dos buildpacks é executado. É aqui que a sua aplicação ou função é preparada para a conteneirização.
  • Imagem de execução: a imagem base a partir da qual a imagem de contentor do seu serviço é criada. Esta é a imagem que aloja a sua aplicação ou função criada.

Ambas as imagens podem ser personalizadas e expandidas de acordo com as suas necessidades. Por exemplo, pode personalizar imagens para adicionar os pacotes necessários para criar o seu serviço ou para instalar pacotes do sistema, para que estejam disponíveis quando o seu serviço for executado.

Antes de começar

Usa a CLI pack para criar localmente o seu serviço numa imagem de contentor.

Antes de começar

  1. Instale o Docker Community Edition (CE) na sua estação de trabalho. O Docker é usado pelo pack como um criador de imagens OCI.
  2. Instale a CLI Pack.
  3. Instale a ferramenta Git source control para obter a aplicação de exemplo do GitHub.

Personalize as imagens de compilação e execução

Os buildpacks usam uma imagem de criação para construir o seu serviço numa imagem de contentor. Quando o processo de compilação estiver concluído, a sua aplicação ou função é inserida numa imagem de execução. Saiba mais sobre o processo de compilação em Conceitos de Buildpacks.

Expandir a imagem do criador

Para personalizar a imagem predefinida do criador:

  1. Crie um builder.Dockerfile personalizado a partir da imagem do criador predefinida. Tem de especificar a etiqueta para a versão do criador que suporta a sua imagem base. Por exemplo, a etiqueta de imagem base :v1 não é suportada pela etiqueta do criador :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 a sua imagem do criador personalizada a partir do ficheiro builder.Dockerfile:

    docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
    

    Substitua BUILDER_IMAGE_NAME pelo nome que escolher para a sua imagem do criador personalizada.

  3. Execute o comando com a imagem do criador personalizada para criar a nova imagem de contentor da sua aplicação ou função:pack build

    pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
    

    Substituição:

    • SERVICE_IMAGE_NAME com o nome que escolher para a imagem da aplicação ou da função.
    • BUILDER_IMAGE_NAME com o nome da imagem do criador personalizado.

Expandir a imagem da corrida

Para personalizar a imagem do contentor de execução predefinida:

  1. Crie uma imagem de execução personalizada run.Dockerfile a partir da imagem de execução predefinida. Tem de especificar a etiqueta para a versão do criador que suporta a sua imagem de execução. Por exemplo, a etiqueta de imagem de execução :v1 não é suportada pela etiqueta de criação :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 da sua corrida personalizada a partir do ficheiro run.Dockerfile:

    docker build -t RUN_IMAGE_NAME -f run.Dockerfile .
    

    Substitua RUN_IMAGE_NAME pelo nome que escolher para a imagem de execução personalizada.

  3. Execute o pack build comando com a sua imagem de execução personalizada para criar a nova imagem do contentor da sua aplicação ou função:

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

    Substituição:

    • SERVICE_IMAGE_NAME com o nome que escolher para a imagem da aplicação ou da função.
    • RUN_IMAGE_NAME com o nome da imagem da sua corrida personalizada.