Buildpacks usa un compilador predeterminado que consiste en todos los componentes necesarios para ejecutar una compilación de tu servicio, incluidas una imagen de compilación y una imagen de ejecución:
- Imagen de compilación: La usa la imagen del compilador para crear el entorno de compilación en el que se ejecuta el ciclo de vida de los paquetes de compilación. Aquí es donde se prepara tu aplicación o función para la contenedorización.
- Imagen de ejecución: Es la imagen base a partir de la cual se compila la imagen del contenedor de tu servicio. Esta es la imagen que aloja la aplicación o función compilada.
Ambas imágenes se pueden personalizar y extender para adaptarse a tus necesidades. Por ejemplo, puedes personalizar las imágenes para agregar los paquetes necesarios para compilar el servicio o instalar paquetes del sistema para que estén disponibles cuando se ejecute el servicio.
Antes de comenzar
Usa la CLI de pack
para compilar tu servicio de forma local en una imagen de contenedor.
Antes de comenzar
- Instala la edición de la comunidad de Docker (CE) en tu estación de trabajo.
pack
usa Docker como un compilador de imágenes de OCI. - Instala la CLI de Pack.
- Instala la herramienta de control de fuente Git para obtener la aplicación de ejemplo de GitHub.
Personaliza las imágenes de compilación y ejecución
Buildpacks usa una imagen de compilador para construir tu servicio en una imagen de contenedor. Cuando se completa el proceso de compilación, la aplicación o función se inserta en una imagen de ejecución. Obtén más información sobre el proceso de compilación en Conceptos de Paquetes de compilación.
Extiende la imagen de compilador
Para personalizar la imagen del compilador predeterminada, haz lo siguiente:
Crea un
builder.Dockerfile
personalizado a partir de la imagen de compilador predeterminada. Debes especificar la etiqueta para la versión del compilador que admita tu imagen base. Por ejemplo, la etiqueta de imagen base:v1
no es compatible con la etiqueta de compilador:google-22
.Ejemplo:
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
Compila tu imagen de compilador personalizada desde el archivo
builder.Dockerfile
:docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
Reemplaza
BUILDER_IMAGE_NAME
por el nombre que elijas para tu imagen del compilador personalizado.Ejecuta el comando
pack build
con la imagen de compilador personalizada para compilar la imagen de contenedor nueva de la aplicación o función:pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
Reemplaza lo siguiente:
SERVICE_IMAGE_NAME
por el nombre que elijas para la imagen de la función o aplicación.BUILDER_IMAGE_NAME
por el nombre de la imagen de compilador personalizada.
Extiende la imagen de ejecución
Para personalizar la imagen de contenedor de ejecución predeterminada, haz lo siguiente:
Crea un
run.Dockerfile
personalizado a partir de la imagen de ejecución predeterminada. Debes especificar la etiqueta de la versión del compilador que admita tu imagen de ejecución. Por ejemplo, la etiqueta de imagen de ejecución:v1
no es compatible con la etiqueta del compilador:google-22
.Ejemplo:
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
Compila tu imagen de compilador personalizada desde el archivo
run.Dockerfile
:docker build -t RUN_IMAGE_NAME -f run.Dockerfile .
Reemplaza
RUN_IMAGE_NAME
por el nombre que elijas para la imagen de ejecución personalizada.Ejecuta el comando
pack build
con la imagen de compilador personalizada para ejecutar la imagen de contenedor nueva de la aplicación o función:pack build SERVICE_IMAGE_NAME --builder gcr.io/buildpacks/builder:v1 --run-image RUN_IMAGE
Reemplaza lo siguiente:
SERVICE_IMAGE_NAME
por el nombre que elijas para la imagen de la función o aplicación.RUN_IMAGE_NAME
por el nombre de la imagen de ejecución personalizada.