Los paquetes de compilación usan un compilador predeterminado, que consta de todos los componentes necesarios para ejecutar una compilación de tu servicio, incluidas las imágenes de compilación y de ejecución:
- Imagen de compilación: la usa la imagen de compilación 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: la imagen base a partir de la cual se crea la imagen de contenedor de tu servicio. Esta es la imagen que aloja tu aplicación o función compilada.
Ambas imágenes se pueden personalizar y ampliar para que se ajusten a tus necesidades. Por ejemplo, puedes personalizar imágenes para añadir los paquetes necesarios para compilar tu servicio o para instalar paquetes del sistema de forma que estén disponibles cuando se ejecute tu servicio.
Antes de empezar
Usas la CLI de pack
para compilar tu servicio localmente en una imagen de contenedor.
Antes de empezar
- Instala Docker Community Edition (CE)
en tu estación de trabajo.
pack
usa Docker como compilador de imágenes OCI. - Instala Pack CLI.
- Instala la herramienta de control de versiones de Git para obtener la aplicación de ejemplo de GitHub.
Personalizar las imágenes de compilación y ejecución
Los buildpacks usan una imagen de compilador para crear tu servicio en una imagen de contenedor. Cuando se completa el proceso de compilación, la aplicación o la función se insertan en una imagen de ejecución. Consulta más información sobre el proceso de compilación en Conceptos de paquetes de compilación.
Extender la imagen del compilador
Para personalizar la imagen predeterminada del creador, sigue estos pasos:
Crea una
builder.Dockerfile
personalizada a partir de la imagen predeterminada del creador. Debes especificar la etiqueta de la versión del generador que admita tu imagen base. Por ejemplo, la etiqueta de imagen base:v1
no es compatible con la etiqueta de compilación: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
Crea tu imagen de compilación personalizada a partir del archivo
builder.Dockerfile
:docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
Sustituye
BUILDER_IMAGE_NAME
por el nombre que elijas para tu imagen de compilación personalizada.Ejecuta el
pack build
comando con tu imagen de compilador personalizada para crear la nueva imagen de contenedor de tu aplicación o función:pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
Sustituye:
SERVICE_IMAGE_NAME
con el nombre que elijas para la imagen de tu aplicación o función.BUILDER_IMAGE_NAME
con el nombre de tu imagen de compilación personalizada.
Ampliar la imagen de la carrera
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:v1
no es compatible con la etiqueta de compilación: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
Crea la imagen de la carrera personalizada a partir del archivo
run.Dockerfile
:docker build -t RUN_IMAGE_NAME -f run.Dockerfile .
Sustituye
RUN_IMAGE_NAME
por el nombre que elijas para tu imagen de ejecución personalizada.Ejecuta el comando
pack build
con tu imagen de ejecución personalizada para crear la nueva imagen de contenedor de tu aplicación o función:pack build SERVICE_IMAGE_NAME --builder gcr.io/buildpacks/builder:v1 --run-image RUN_IMAGE
Sustituye:
SERVICE_IMAGE_NAME
con el nombre que elijas para la imagen de tu aplicación o función.RUN_IMAGE_NAME
con el nombre de la imagen de ejecución personalizada.