Knative Serving acepta imágenes de contenedor creadas con cualquier herramienta capaz de crear imágenes de contenedor, siempre que respeten el contrato de contenedor.
En concreto, tu código debe recibir solicitudes HTTP en el puerto definido por la variable de entorno PORT
. Knative Serving inserta automáticamente esta variable de entorno PORT
en tu contenedor.
En esta página se describen varias formas de crear imágenes de contenedor:
- Usar un Dockerfile
- Usar paquetes de compilación
Compilar con un Dockerfile
Si usas Dockerfiles, puedes usar cualquiera de los siguientes métodos para compilar:
- Compilar con Cloud Build
- Compilar de forma local con Docker
Compilar con Cloud Build
Para crear tu imagen en Google Cloud, sigue estos pasos:
Desplázate hasta la carpeta que contiene tus fuentes y el archivo Dockerfile.
Ejecuta el comando:
gcloud builds submit --tag IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
gcr.io/cloudrun/hello
.
Para obtener instrucciones detalladas sobre Cloud Build, consulta Implementar en Knative Serving.
Para obtener consejos sobre cómo mejorar el rendimiento de las compilaciones, consulta Acelerar las compilaciones.
Compilar de forma local y enviar con Docker
Si tienes Docker instalado localmente, puedes usar docker build
en lugar de Cloud Build o Buildpacks.
Antes de compilar tus fuentes en una imagen de contenedor ("contenedorización") con Docker, necesitas un Dockerfile junto con tus fuentes. En las siguientes instrucciones se usa Container Registry como registro de imágenes.
Para compilar la imagen de contenedor con Docker, sigue estos pasos:
Ve a la carpeta que contiene tus fuentes y
Dockerfile
.Ejecuta el comando:
docker build . --tag IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
gcr.io/cloudrun/hello
.Si aún no has configurado Docker para que use la CLI de Google Cloud con el fin de autenticar solicitudes a Container Registry, hazlo ahora con el siguiente comando:
gcloud auth configure-docker
Debes hacerlo antes de poder enviar o extraer imágenes con Docker. Solo tienes que hacerlo una vez.
Envía la imagen de contenedor a Container Registry:
docker push IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
gcr.io/cloudrun/hello
.
Para excluir archivos locales de este proceso, sigue las instrucciones del .dockerignore
archivo de configuración.
Compilar con paquetes de compilación
Para obtener información completa sobre los buildpacks, consulta el sitio web de Buildpacks. Google proporciona un conjunto de paquetes de compilación compatibles con CNCF que compilan código fuente en imágenes de contenedor diseñadas para ejecutarse en plataformas de contenedores, incluido Knative Serving. Google Cloud
Actualmente, se admiten estas plataformas:
- Go
- Node.js
- Python
- Java
- .NET Core
Compilar con Buildpacks mediante Cloud Build
Para compilar con un paquete de compilación, sigue estos pasos:
Ve a la carpeta que contiene tus fuentes.
Ejecuta el comando:
gcloud builds submit --pack image=IMAGE_URL
Sustituye IMAGE_URL por la URL de la imagen del contenedor (por ejemplo,
gcr.io/myproject/myservice
).Espera a que se complete la compilación.
Compilar con Buildpack mediante la línea de comandos pack
Para compilar con el comando pack, haz lo siguiente:
Si aún no lo has hecho, instala Docker.
Si aún no has configurado Docker para que use la CLI de Google Cloud con el fin de autenticar solicitudes a Container Registry, hazlo ahora con el siguiente comando:
gcloud auth configure-docker
Debes hacerlo antes de poder enviar o extraer imágenes con Docker. Solo tienes que hacerlo una vez.
Si aún no lo has hecho, instala
pack
.Ve a la carpeta que contiene tus fuentes.
Ejecuta el siguiente comando para compilar y enviar al registro de contenedores:
pack build --publish IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
gcr.io/cloudrun/hello
.Espera a que termine
pack
.
Para obtener más información, consulta las instrucciones de la sección Crear una aplicación.
Siguientes pasos
Para obtener más información sobre el contrato que deben cumplir tus contenedores para implementarse en Knative Serving, consulta Contrato de contenedor.
Para desplegar los contenedores compilados en Knative Serving, sigue las instrucciones de Desplegar servicios.
Para automatizar las compilaciones y los despliegues de tus servicios de Knative Serving con activadores de Cloud Build, configura la implementación continua.