Crear contenedores

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:

  1. Desplázate hasta la carpeta que contiene tus fuentes y el archivo Dockerfile.

  2. 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:

  1. Ve a la carpeta que contiene tus fuentes y Dockerfile.

  2. 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.

  3. 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.

  4. 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 .dockerignorearchivo 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:

  1. Ve a la carpeta que contiene tus fuentes.

  2. 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).

  3. 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:

  1. Si aún no lo has hecho, instala Docker.

  2. 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.

  3. Si aún no lo has hecho, instala pack.

  4. Ve a la carpeta que contiene tus fuentes.

  5. 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.

  6. 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.