Knative serving acepta imágenes de contenedor compiladas con cualquier herramienta apta, siempre que respeten el contrato del contenedor.
En particular, tu código debe escuchar las solicitudes HTTP en el puerto que define la variable de entorno PORT
. Knative serving inserta esta variable de entorno PORT
de forma automática en tu contenedor.
En esta página, se describen varias formas de compilar imágenes de contenedor:
- Usa un Dockerfile
- Usa Buildpacks
Compila mediante un Dockerfile
Si usas Dockerfiles, puedes usar cualquiera de los siguientes métodos para compilar:
- Compila mediante Cloud Build
- Compila de forma local mediante Docker
Compila mediante Cloud Build
Para compilar tu imagen en Google Cloud, sigue estos pasos:
Navega a la carpeta que contiene tus fuentes y el Dockerfile.
Ejecuta este comando:
gcloud builds submit --tag IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
gcr.io/cloudrun/hello
.
Para obtener instrucciones detalladas sobre Cloud Build, consulta Implementa en Knative serving.
Si deseas obtener sugerencias para mejorar el rendimiento de la compilación, consulta Acelera las compilaciones.
Realiza compilaciones de forma local y haz el envío mediante Docker
Si tienes Docker instalado de manera local, puedes usar docker build
en lugar de Cloud Build o Buildpacks.
Antes de compilar las fuentes en una imagen de contenedor (“alojamiento en contenedores”) mediante Docker, debe haber un Dockerfile presente, además de las fuentes. En las siguientes instrucciones, se usa Container Registry como el registro de imágenes.
Para compilar tu imagen de contenedor mediante Docker, sigue estos pasos:
Navega a la carpeta que contiene tus fuentes y el
Dockerfile
.Ejecuta este comando:
docker build . --tag IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
gcr.io/cloudrun/hello
.Si aún no configuraste Docker para usar Google Cloud CLI a fin de autenticar solicitudes a Container Registry, hazlo ahora mediante el siguiente comando:
gcloud auth configure-docker
Debes hacer esto antes de enviar o extraer imágenes mediante Docker. Solo debes hacerlo una vez.
Envía la imagen de contenedor a Container Registry:
docker push IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
gcr.io/cloudrun/hello
.
Para excluir archivos locales de este proceso, sigue
las instrucciones del archivo de
configuración .dockerignore
.
Compila mediante Buildpacks
Para obtener información completa sobre Buildpacks, consulta el sitio web de Buildpacks. Google proporciona un conjunto de Buildpacks compatibles con CNCF que compilan código fuente en imágenes de contenedor diseñadas para ejecutarse en plataformas de contenedores de Google Cloud, incluido Knative serving.
Las siguientes plataformas son compatibles en este momento:
- Go
- Node.js
- Python
- Java
- .NET Core
Compila con Buildpacks mediante Cloud Build
Sigue estos pasos para compilar con un Buildpack:
Navega a la carpeta que contiene tus fuentes.
Ejecuta este comando:
gcloud builds submit --pack image=IMAGE_URL
Reemplaza IMAGE_URL por la URL de la imagen de contenedor, como
gcr.io/myproject/myservice
.Espera a que se complete la compilación.
Realiza compilaciones con Buildpacks mediante la línea de comandos pack
Sigue estos pasos para realizar una compilación mediante el comando pack:
Si aún no lo hiciste, instala Docker.
Si aún no configuraste Docker para usar Google Cloud CLI a fin de autenticar solicitudes a Container Registry, hazlo ahora mediante el siguiente comando:
gcloud auth configure-docker
Debes hacer esto antes de enviar o extraer imágenes mediante Docker. Solo debes hacerlo una vez.
Si aún no lo hiciste, instala
pack
.Navega a la carpeta que contiene tus fuentes.
Ejecuta el siguiente comando para compilar y enviar a tu Container Registry:
pack build --publish IMAGE_URL
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
gcr.io/cloudrun/hello
.Espera a que
pack
finalice.
Para obtener más información, lee las instrucciones provistas en Compila una aplicación.
¿Qué sigue?
Si deseas obtener más información sobre el contrato que deben cumplir tus contenedores para implementarse en Knative serving, consulta Contrato de contenedores.
Para implementar en Knative serving tus contenedores compilados, sigue los pasos de Implementa servicios.
Para automatizar las compilaciones y las implementaciones de tus servicios de Knative serving mediante activadores de Cloud Build, configura la implementación continua.