Creación de un trabajo a partir del código fuente del repositorio
Puede crear su trabajo directamente a partir del código fuente que se encuentra en un repositorio de Git con la consola y la CLI de IBM Cloud® Code Engine. Averigüe qué ventajas están disponibles al crear una imagen con Code Engine.
Creación del trabajo a partir del código fuente del repositorio desde la consola
Puede crear su trabajo directamente a partir del código fuente con la consola.
Antes de empezar, planifique la compilación. También puede encontrar consejos para crear un Dockerfile. Cada vez que ejecuta el trabajo, se utiliza la versión más reciente de los artefactos de compilación dependientes, incluidos los paquetes de compilación y la imagen de contenedor, durante el proceso de compilación y se incluyen en la imagen de contenedor resultante.
Code Engine puede enviar (subir) automáticamente imágenes a los espacios de nombres de IBM Cloud® Container Registry en su cuenta e incluso crear un espacio de nombres. Para enviar imágenes a una cuenta de Container Registry distinta o a una cuenta privada de Docker Hub, consulte Acceder a registros de contenedor privado.
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.
- Abra la consola de Code Engine.
- Seleccione Vamos.
- Seleccione Trabajo.
- Especifique un nombre para el trabajo. Utilice un nombre para el trabajo que sea exclusivo dentro del proyecto.
- 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.
- Seleccione Código fuente.
- Pulse Especificar detalles de compilación.
- Seleccione un repositorio de origen, por ejemplo,
https://github.com/IBM/CodeEngine. Como estamos utilizando un código fuente de ejemplo que no requiere credenciales, seleccioneNonepara el acceso de repositorio de código. Opcionalmente, puede proporcionar un nombre de rama. Si no proporciona un nombre de rama y deja el campo vacío, Code Engine utiliza automáticamente la rama predeterminada del repositorio especificado. Pulse Siguiente. - Seleccione una estrategia para la compilación y los recursos para la compilación. Para obtener más información sobre las opciones de compilación, consulte Planificación de una compilación. Pulse Siguiente.
- Proporcione información de registro sobre dónde almacenar la imagen de la salida de compilación. Seleccione una ubicación de registro del contenedor, como
IBM Registry Dallas. Si el registro es privado, debe configurar un acceso al mismo. - Seleccione un secreto de Registro existente o cree uno nuevo. Si está compilando la imagen en una instancia de IBM Cloud Container Registry que está en su cuenta, puede seleccionar
Code Engine managed secrety dejar que Code Engine cree y gestione el secreto automáticamente. - Seleccione un espacio de nombres, un nombre y una etiqueta para la imagen. Si está compilando la imagen en una instancia de IBM Cloud Container Registry que está en su cuenta, puede seleccionar un espacio de nombres existente o dejar que Code Engine cree y gestione el espacio de nombres automáticamente.
- Pulse Listo.
- 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.
- Pulse Crear.
- Después de enviar la ejecución de compilación, la imagen de contenedor compilada se envía a Container Registry y, a continuación, el trabajo puede hacer referencia a la imagen compilada. Cuando el trabajo esté listo, pulse Enviar trabajo para ejecutar el trabajo en función de la configuración actual.
Las ejecuciones de compilación que se completan finalmente se suprimen automáticamente. Cuando la ejecución de compilación se basa en la configuración de compilación, esta ejecución de compilación se suprime después de 3 horas 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 48 horas.
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.
¿Necesita ayuda? Consulte Consejos sobre la resolución de problemas de compilaciones.
Creación del trabajo a partir del código fuente del repositorio con la CLI
Puede crear su trabajo directamente a partir del código fuente del repositorio con la CLI. Utilice el mandato job create para compilar una imagen a partir del código fuente del repositorio de Git y definir la configuración
del trabajo.
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Cree y trabaje con un proyecto.
En este caso de ejemplo, Code Engine compila una imagen a partir del código fuente del repositorio de Git, carga automáticamente la imagen en el registro de contenedor y, a continuación, crea la configuración del trabajo para hacer referencia
a esta imagen compilada con el mandato job create. Debe proporcionar solo un nombre para el trabajo y el URL al repositorio de Git si la imagen se va a localizar en una cuenta de IBM Cloud Container Registry.
En este caso, Code Engine gestiona el espacio de nombres automáticamente. Sin embargo, si desea utilizar un registro de contenedores diferente, debe especificar la imagen y un secreto de registro para ese registro de contenedores. Utilice
el mandato ibmcloud ce jobrun submit para ejecutar el trabajo que hace referencia a la imagen compilada. Para ver una lista completa de las opciones, consulte los mandatos ibmcloud ce job create y ibmcloud ce jobrun submit.
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.
-
Utilice el mandato
job createpara crear el trabajomyjob-repopara hacer referencia a una imagen que se compila a partir del código fuente de compilación dehttps://github.com/IBM/CodeEngine. Este mandato compila automáticamente la imagen y la carga en un espacio de nombres de IBM Cloud® Container Registry en la cuenta, y las ejecuciones de este trabajo hacen referencia a esta imagen compilada. Al especificar la opción--build-context-dir, la compilación utiliza el código fuente en el directoriohelloworld. Este mandato de ejemplo utiliza la estrategiadockerfilepredeterminada y el tamaño de compilación demediumpredeterminado. Como el nombre de rama del repositorio no se especifica con la opción--build-commit, Code Engine utiliza automáticamente la rama predeterminada del repositorio especificado. 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-repo --build-source https://github.com/IBM/CodeEngine --build-context-dir helloworld --waitSalida de ejemplo
Creating job 'myjob-repo'... Submitting build run 'myjob-repo-run-220420-15590196'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-repo-run-220420-15590196' to check the build run status. OKComo especificamos la opción
--wait, la salida del comandojob createproporciona información sobre la progresión 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 de
ce--abcde-glxo4kabcdeen IBM Cloud 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-sourceEl URL del repositorio Git que contiene el código fuente; por ejemplo, https://github.com/IBM/CodeEngine.--build-context-dirEl directorio del repositorio que contiene el archivo de paquetes de compilación o el Dockerfile. Este valor es opcional. --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-repoSalida de ejemplo
[...] Name: myjob-repo 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-repo 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-repo-run-220420-15590196 Build Type: git Build Strategy: dockerfile-medium Timeout: 600 Source: https://github.com/IBM/CodeEngine Context Directory: helloworld 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-repo-run-220420-15590196' 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-repobasándose en la configuración del trabajo demyjob-repo.ibmcloud ce jobrun submit --name myjobrun-repo --job myjob-repo -
(opcional) Vea los detalles de la ejecución del trabajo.
ibmcloud ce jobrun get --name myjobrun-repoSalida 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-repo Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo 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: 90s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 101s 101s Running True 91s 91s Complete True 90s 90s Events: Type Reason Age Source Messages Normal Updated 91s (x4 over 102s) batch-job-controller Updated JobRun "myjobrun-repo" Normal Completed 91s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-repo-0-0 0/1 Succeeded 0 102s
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.
Cuando el trabajo se crea desde el código fuente del repositorio o desde origen local 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 tiene una imagen de contenedor, según el estándar Open Container Initiative(OCI), entonces sólo necesita proporcionar una referencia a la imagen, que apunte a la ubicación de su registro de contenedores cuando cree (o actualice) su trabajo. Puede crear (o actualizar) su trabajo a partir de imágenes en un registro público o privado y luego acceder a la imagen referenciada desde la ejecución de su 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 creación de la imagen, puede elegir crear 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? Consulte los ejemplos de para IBM Cloud Code Engine GitHub.