Creación del trabajo a partir del código fuente local con la CLI
Puede crear su trabajo directamente desde el código fuente en la estación de trabajo local con la CLI de IBM Cloud® Code Engine. Utilice el mandato job create para compilar una imagen desde el código fuente local
y definir la configuración de su trabajo para hacer referencia a esta imagen compilada.
Cuando envía una compilación que extrae código de un directorio local, el código fuente se empaqueta en un archivo de archivado. Code Engine carga automáticamente la imagen en un espacio de nombres de IBM Cloud® Container Registry en la cuenta
y, a continuación, crea el trabajo para hacer referencia a esta imagen compilada. Tenga en cuenta que solo puede especificar IBM Cloud Container Registry como destino para las compilaciones locales. Para este caso de ejemplo, solo debe proporcionar
un nombre para el trabajo y la vía de acceso al código fuente local. Para ver una lista completa de opciones, consulte el mandato ibmcloud ce job create.
Para obtener información sobre los permisos necesarios para acceder a los registros de imágenes, consulte Configuración de autorizaciones para registros de imágenes.
Puede elegir ignorar determinados patrones de archivo del código fuente utilizando el archivo .ceignore, que se comporta de forma similar a un archivo .gitignore. Por ejemplo, las entradas de un archivo .ceignore para una aplicación node.js pueden incluir node_modules y .npm. Para ver más ejemplos de patrones de archivos que se deben ignorar, consulta el repositorio « GitHub.gitignore ».
Se requiere IBM Cloud® Container Registry para este caso de ejemplo.
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Cree y trabaje con un proyecto.
- El código fuente debe estar en una ubicación accesible en la estación de trabajo local.
Este ejemplo utiliza los ejemplos de https://github.com/IBM/CodeEngine; en concreto, el ejemplo de helloworld.
-
Descargue el código fuente de ejemplo de
https://github.com/IBM/CodeEngineen la estación de trabajo local con el mandato siguiente.git clone https://github.com/IBM/CodeEngine -
Vaya al directorio
CodeEngine\helloworld. -
En el directorio
CodeEngine\helloworld, cree el trabajomyjob-local, que utiliza una imagen compilada a partir del código fuente deCodeEngine\helloworlden la estación de trabajo local. Este mandato compila y envía automáticamente la imagen a un espacio de nombres IBM Cloud Container Registry en su cuenta. Si no tiene un espacio de nombres Container Registry existente, Code Engine crea automáticamente uno. Al añadir la opción--wait, especifica que el trabajo de creación debe esperar a que se complete la compilación de la imagen.ibmcloud ce job create --name myjob-local --build-source . --wait.indica que el código fuente de compilación se encuentra en el directorio de trabajo actual.Salida de ejemplo
Creating job 'myjob-local'... Packaging files to upload from source path '.'... Submitting build run 'myjob-local-run-220420-150457582'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' to check the build run status. OKDado que hemos especificado la opción «
--wait», la salida deljob createcomando proporciona información sobre el progreso de la ejecución de la compilación antes de que se cree el trabajo.En este ejemplo, la imagen compilada se carga en el espacio de nombres
ce--abcde-glxo4kabcdeen Container Registry.En la tabla siguiente se resumen las opciones que se utilizan con el mandato
job createen este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce job create.Descripción del mandato Opción Descripción --nameEl nombre del trabajo. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es obligatorio.
- El nombre debe empezar y terminar con un carácter alfanumérico en minúsculas.
- El nombre debe tener 63 caracteres o menos y puede contener letras, números y guiones (-).
--build-sourceLa vía de acceso al código fuente local. --waitEspecifica que se debe esperar a que se complete la compilación de la imagen antes de crear el trabajo. -
(opcional) Utilice el mandato
job getpara visualizar información sobre el trabajo, incluida la información sobre la compilación.ibmcloud ce job get --name myjob-localSalida de ejemplo
[...] Name: myjob-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local Resource Allocation: CPU: 1 Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 Build Information: Build Run Name: myjob-local-run-220420-150457582 Build Type: local Build Strategy: dockerfile-medium Timeout: 600 Source: . Dockerfile: Dockerfile Build Run Summary: Succeeded Build Run Status: Succeeded Build Run Reason: All Steps have completed executing Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' for details.. [...] -
Ahora que se ha creado el trabajo y se ha compilado la imagen, ejecute el trabajo que hace referencia a la imagen compilada. Este mandato de ejemplo ejecuta la ejecución del trabajo de
myjobrun-localbasándose en la configuración del trabajo demyjob-local.ibmcloud ce jobrun submit --name myjobrun-local --job myjob-local -
(opcional) Vea los detalles de la ejecución del trabajo.
ibmcloud ce jobrun get --name myjobrun-localSalida de ejemplo
Getting jobrun 'myjobrun-local'... Getting instances of jobrun 'myjobrun-local'... Getting events of jobrun 'myjobrun-local'... Run 'ibmcloud ce jobrun events -n myjobrun-local' to get the system events of the job run instances. Run 'ibmcloud ce jobrun logs -f -n myjobrun-local' to follow the logs of the job run instances. OK Name: myjobrun-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Job Ref: myjob-local Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 2m40s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 2m44s 2m44s Running True 2m40s 2m40s Complete True 2m40s 2m40s Events: Type Reason Age Source Messages Normal Updated 2m41s (x3 over 2m45s) batch-job-controller Updated JobRun "myjobrun-local" Normal Completed 2m41s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-local-0-0 0/1 Succeeded 0 2m45s
Ahora que el trabajo se crea y se ejecuta desde el código fuente del repositorio, puede actualizar el trabajo para que se adapte a sus necesidades utilizando el mandato ibmcloud ce job update.
Para obtener más información sobre la actualización de trabajos, consulte Actualización de un trabajo. Si desea actualizar el código fuente para utilizarlo con el trabajo, debe proporcionar
la opción --build-source en el mandato job update.
En lugar de compilar la imagen desde el código fuente local y crear el trabajo con un solo mandato, puede elegir compilar primero desde el código fuente local antes de crear el trabajo. Consulte Creación de una configuración de compilación que extrae el origen de una estación de trabajo local.
Cuando el trabajo se crea desde el origen local o desde el código fuente de repositorio con la CLI, la ejecución de compilación resultante no se basa en una configuración de compilación. Las ejecuciones de compilación que se completan finalmente se suprimen automáticamente. Las ejecuciones de compilación que no se basan en una configuración de compilación se suprimen después de 1 hora si la ejecución de compilación es satisfactoria. Si la ejecución de compilación no es satisfactoria, esta ejecución de compilación se suprime después de 24 horas. Sólo puede visualizar información sobre esta ejecución de compilación con la CLI. No puede ver esta ejecución de compilación en la consola.
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 createy ha especificado la opción--build-sourcepara 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, ejecuteibmcloud 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 ».