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
- Instale o Docker Community Edition (CE) na
estação de trabalho. O Docker é usado pela
pack
como um builder de imagens OCI. - Instale a CLI Pack.
- 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:
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
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.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:
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
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.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.