Creación de un trabajo a partir de imágenes en IBM Cloud Container Registry

Cree la configuración del trabajo que utiliza una imagen de IBM Cloud® Container Registry. Puede crear un trabajo desde la consola o con la CLI.

Antes de empezar

¿Te interesa configurar tu proyecto de tal forma que todos los usuarios del mismo puedan almacenar y acceder a imágenes en Container Registry sin tener que crear manualmente secretos de registro? Con permisos suficientes, puede configurar este acceso de registro predeterminado para cada ubicación (región). Si no tiene permisos suficientes para realizar estas acciones, puede utilizar esta página para ayudarle a comprender los permisos necesarios. Consulte Configuración de valores para todo el proyecto.

Creación de un trabajo que haga referencia a una imagen de Container Registry con la consola

Cree una configuración de trabajo que utilice una imagen de Container Registry mediante la consola de Code Engine.

Code Engine puede extraer automáticamente imágenes de un espacio de nombres de Container Registry en una cuenta. Para extraer imágenes de una cuenta distinta de Container Registry o de una cuenta privada de Docker Hub, consulte Crear un trabajo a partir de imágenes en un registro privado.

  1. Abra la consola de Code Engine.
  2. Selecciona « Empezar a crear ».
  3. Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Tenga en cuenta que debe tener un proyecto seleccionado para crear un trabajo.
  4. Seleccione Trabajo.
  5. Especifique un nombre para el trabajo; por ejemplo, myjob.
  6. Selecciona « Usar una imagen de contenedor existente » y haz clic en « Configurar imagen ».
  7. Selecciona una ubicación para el registro de contenedores, como IBM Registry Dallas.
  8. Seleccione Code Engine managed secret para el Secreto de registro. Dado que este ejemplo utiliza una imagen del espacio de nombres Container Registry de tu cuenta, Code Engine puede crear y gestionar automáticamente el secreto de registro por ti.
  9. Seleccione un espacio de nombres existente y el nombre de la imagen en el registro del trabajo de Code Engine al que hay que hacer referencia. Por ejemplo, seleccione mynamespace y seleccione la imagen hello_repo en dicho espacio de nombres.
  10. Seleccione un valor para la Etiqueta; por ejemplo, latest.
  11. Pulse Listo.
  12. Modifique los valores predeterminados para las variables de entorno o los valores de tiempo de ejecución. Para obtener más información, consulte Opciones para crear y ejecutar un trabajo.
  13. En la página Crear trabajo, pulse Crear.
  14. Tras crear el trabajo, se abre la página del trabajo específico. En la página de trabajo, pulse Enviar trabajo para enviar un trabajo basado en la configuración actual.

Ahora que ha creado y ejecutado el trabajo, puede ver detalles sobre la configuración del trabajo y las ejecuciones de trabajos desde la página de trabajo.

Si desea añadir acceso de registro antes de crear un trabajo, consulte Acceso a registros de contenedores.

Creación de un trabajo con una imagen de Container Registry con la CLI

Para crear una configuración de trabajo que utilice una imagen en IBM Cloud® Container Registry con la CLI, utilice el mandato job create. Para ver una lista completa de opciones, consulte el mandato ibmcloud ce job create.

Antes de empezar

  1. Para añadir acceso a Container Registry, cree una clave de API de IAM. Para crear una clave de API de IBM Cloud IAM desde la CLI, ejecute el mandato iam api-key-create. Por ejemplo, para crear una clave API llamada « cliapikey » con la descripción « My CLI API key » y guardarla en un archivo llamado « key_file », ejecuta el siguiente comando :

    ibmcloud iam api-key-create cliapikey -d "My CLI API key" --file key_file
    

    Si elige no guardar la clave en un archivo, debe registrar la clave de API que se visualiza durante la creación. No la podrá recuperarla más adelante.

  2. Después de crear la clave de API, añada de acceso de registro a Code Engine. Para añadir acceso a Container Registry con la CLI, utilice el mandato ibmcloud ce secret create --format registry para crear un secreto de registro. Por ejemplo, el siguiente comando crea una entrada en el Registro para una instancia de Container Registry denominada myregistry. Fíjese que aunque se hayan especificado las opciones --server y --username en el mandato de ejemplo, el valor predeterminado de la opción --server es us.icr.io y la opción --username toma como valor predeterminado iamapikey cuando el servidor es us.icr.io.

    ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEY
    

    Salida de ejemplo

    Creating registry secret 'myregistry'...
    OK
    
  3. Cree la configuración del trabajo y haga referencia a la imagen hello_repo en Container Registry. Por ejemplo, el siguiente mandato job create crea el trabajo myhellojob para hacer referencia a us.icr.io/mynamespace/hello_repo utilizando la información de acceso de myregistry.

    ibmcloud ce job create --name myhellojob --image us.icr.io/mynamespace/hello_repo --registry-secret myregistry
    

    El formato del nombre de la imagen correspondiente a este trabajo es REGISTRY/NAMESPACE/REPOSITORY:TAG, donde REGISTRY y TAG son opcionales. Si no se especifica REGISTRY, el valor predeterminado es docker.io. Si no se especifica TAG, el valor predeterminado es latest.

Próximos pasos

  • Después de crear el trabajo, envíelo para ejecutarlo. Consulte Ejecución de un trabajo. Puede ejecutar el trabajo varias veces.

  • Después de ejecutar el trabajo, para ver los detalles del trabajo y las ejecuciones del trabajo, consulte Detalles de trabajo.

  • Ahora que se ha creado el trabajo, se recomienda que los trabajos estén controlados por sucesos. Con las suscripciones de sucesos, puede desencadenar los trabajos utilizando planificaciones periódicas o establecer el trabajo para que reaccione a sucesos como las cargas de archivos.

  • Puede actualizar el trabajo y su código referenciado de varias formas, independientemente de cómo haya creado o actualizado el trabajo con anterioridad.

    • Si dispones de una imagen de contenedor que cumpla con el estándar de la Open Container Initiative(OCI), solo tendrás que proporcionar una referencia a dicha imagen, que apunte a la ubicación de tu registro de contenedores, al crear (o actualizar) tu trabajo. Puedes crear (o actualizar) tu trabajo a partir de imágenes de un registro público o privado y, a continuación, acceder a la imagen a la que se hace referencia desde la ejecución de tu trabajo.

      Si ha creado el trabajo utilizando el mandato job create y ha especificado la opción --build-source para crear la imagen de contenedor desde el origen local o de repositorio, y desea cambiar el trabajo para que apunte a una imagen de contenedor diferente, primero debe eliminar la asociación de la compilación del trabajo. Por ejemplo, ejecute ibmcloud ce job update -n JOB_NAME --build-clear. Después de eliminar la asociación de la compilación del trabajo, puede actualizar el trabajo para que haga referencia a una imagen diferente.

    • Si está empezando con un código fuente que reside en un repositorio de Git, puede dejar que Code Engine se encargue de compilar la imagen desde el código fuente y crear (o actualizar) el trabajo con una única operación. En este caso de ejemplo, Code Engine carga la imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Creación de un trabajo a partir del código fuente del repositorio. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de crear (o actualizar) el trabajo y ejecutarlo.

    • Si está empezando con un código fuente que reside en una estación de trabajo local, puede dejar que Code Engine se encargue de compilar la imagen desde el código fuente y crear el trabajo con un único mandato de CLI. En este caso de ejemplo, Code Engine carga la imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Creación del trabajo a partir del código fuente local con la CLI. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de crear (o actualizar) el trabajo y ejecutarlo.

    Por ejemplo, puede dejar que Code Engine maneje la compilación del código fuente local mientras avanza en el desarrollo del código fuente para el trabajo. Una vez que la imagen ha madurado, puede actualizar el trabajo para que haga referencia a la imagen específica que desee. Puede repetir este proceso según sea necesario.

    Cuando ejecuta el trabajo actualizado, se utiliza la última versión de la imagen de contenedor referenciada para la ejecución del trabajo, a menos que se especifique una etiqueta para la imagen. Si se especifica una etiqueta para la imagen, se utiliza la imagen etiquetada para la ejecución del trabajo.

¿Desea ver más ejemplos de código? Echa un vistazo a Ejemplos para el repositorio « IBM Cloud Code Engine GitHub ».