Compilación de una imagen de contenedor con mandatos de compilación autónomos (CLI)
Cuando su código existe como fuente en un archivo local o en un repositorio Git, Code Engine le ofrece opciones para construir su código como una imagen de contenedor, según el estándar Open Container Initiative(OCI). Con la CLI de Code Engine, puede crear una imagen de contenedor con un solo mandato.
Code Engine ofrece la flexibilidad necesaria para manejar el proceso de compilación siempre que vaya a desplegar la aplicación desde el código fuente del repositorio, desplegar la aplicación desde el código fuente local con la CLI, crear un trabajo a partir del código fuente del repositorio o crear un trabajo a partir del código fuente local con la CLI.
Sin embargo, si desea tener más control sobre la compilación de la imagen de contenedor, Code Engine le ofrece la flexibilidad necesaria para crear la imagen de contenedor utilizando una de las opciones siguientes:
- Utilice un único mandato de CLI,
buildrun submit, para ejecutar una ejecución de compilación. La ventaja de esta opción es que puede obtener la compilación con un único mandato de CLI; sin embargo, la configuración de la compilación no se conserva. - Defina una configuración de compilación desde la que pueda ejecutar varias ejecuciones de compilación. Consulte Compilación de una imagen de contenedor utilizando una configuración de compilación.
Cuando ha completado la compilación y la imagen existe, puede desplegar la imagen del contenedor como una aplicación o crear un trabajo que haga referencia a su imagen.
Vamos a aprender a compilar la imagen de contenedor con un solo mandato, sin hacer referencia a una configuración de compilación. En este caso de ejemplo, IBM Cloud® Code Engine extrae el código fuente de un repositorio de Git o de un directorio local, lo compila y, a continuación, envía (sube) la imagen del contenedor a un registro. Puede elegir repositorios y registros públicos o privados. Puede optar por especificar los detalles del registro con un secreto de registro para su salida de compilación con acceso proporcionado por el usuario. O bien, puede dejar que Code Engine se encargue de compilar la imagen automáticamente a partir de su código fuente y de almacenarla en IBM Cloud Container Registry con acceso automático.
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 más ejemplos de patrones de archivos a ignorar, consulte el repositorio .gitignoreGitHub.
Tenga en cuenta los puntos siguientes antes de compilar la imagen de contenedor:
-
Antes de empezar a crear imágenes, revise la información de planificación. También deberá verificar que puede acceder al registro. Consulte Configuración de autorizaciones para registros de contenedores.
-
Si compila varias versiones de la misma imagen de contenedor, la última versión de la imagen de contenedor se descarga y se utiliza cuando ejecuta el trabajo o despliega la aplicación, a menos que se especifique una etiqueta para la imagen. Si se especifica una etiqueta para la imagen, la imagen etiquetada se utiliza para la aplicación o el trabajo.
-
Las ejecuciones de compilación enviadas con la CLI que no hacen referencia a una configuración de compilación definida también se pueden ver desde la consola. En la página del proyecto, pulse Compilaciones de imagen para ver la lista de compilaciones de imagen y ejecuciones de compilación. Con la CLI, utilice el mandato
ibmcloud ce buildrun listpara ver una lista de todas las ejecuciones de compilación en un proyecto. -
Code Engine tiene cuotas para las ejecuciones de compilación dentro de un proyecto. Para obtener más información sobre los límites de Code Engine, consulte Límites y cuotas de Code Engine.
Las ejecuciones de compilación que se completan finalmente se suprimen automáticamente. Cuando ejecuta una ejecución de compilación con un único mandato de CLI de forma que no se basa en una configuración de compilación, esta ejecución de compilación se suprime 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.
Ejecución de una única compilación que extrae el código fuente del repositorio público con la CLI
Si el código fuente está ubicado en un repositorio público y desea utilizar un único mandato para compilar y generar una imagen de contenedor, utilice el mandato buildrun submit para crear la imagen de contenedor
sin crear una configuración de compilación reutilizable.
Para la salida de compilación, puede elegir el acceso automático y dejar que Code Engine se encargue de compilar la imagen automáticamente a partir del código fuente y de almacenarla en IBM Cloud Container Registry. En este caso, no es necesario especificar un secreto de registro ni la ubicación del registro de imágenes. O bien, puede elegir el acceso proporcionado por el usuario y especificar los detalles del registro junto con un secreto de registro para acceder a su imagen creada en el registro.
Para obtener una lista completa de las opciones para ejecutar una única compilación, consulte el mandato ibmcloud ce buildrun submit.
Ejecución de una única compilación con la CLI (con código fuente de repositorio público y acceso automático al registro)
En este caso de ejemplo de acceso automático, Code Engine compila una imagen a partir del código fuente del repositorio de Git público y la carga en IBM Cloud Container Registry con acceso automático utilizando las opciones de compilación
con el mandato buildrun submit. En este caso, no es necesario especificar un secreto de registro o la ubicación del registro de imágenes.
Consulte Configuración de autorizaciones para registros de imágenes para obtener más información sobre cómo establecer los permisos necesarios para que Code Engine acceda automáticamente a estas imágenes en Container Registry.
Antes de empezar
-
Ejecute una compilación para crear una imagen a partir de un repositorio de Git público y deje que Code Engine almacene automáticamente la imagen y acceda a ella. Por ejemplo, el siguiente mandato de
buildrun submitejecuta una ejecución de compilación denominadahelloworld-buildrunque se compila a partir del código fuente en el repositorio de Git públicohttps://github.com/IBM/CodeEngine.ibmcloud ce buildrun submit --name helloworld-buildrun --source https://github.com/IBM/CodeEngine --context-dir /hello- En este ejemplo, el mandato utiliza la estrategia
dockerfilepredeterminada y el tamaño de compilación demediumpredeterminado. - Como el nombre de rama del repositorio no se especifica con la opción
--commit, Code Engine utiliza automáticamente la rama predeterminada del repositorio especificado, que esmainpara este repositorio de Git. - Al no especificar la ubicación del registro de imágenes o un secreto de registro, Code Engine empuja la salida de construcción a IBM Cloud Container Registry con acceso automático.
- Code Engine determina automáticamente si el código fuente reside en un repositorio o en una estación de trabajo local, basándose en el valor de la opción
--source.
Salida de ejemplo
Submitting build run 'helloworld-buildrun'... Creating image 'private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun'... Run 'ibmcloud ce buildrun get -n helloworld-buildrun' to check the build run status. OKEn la tabla siguiente se resumen las opciones que se utilizan con el mandato
buildrun submiten este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce buildrun submit.Descripción del mandato Opción Descripción --nameEl nombre de la ejecución de compilación. Utilice un nombre que sea exclusivo dentro del proyecto.
- El nombre debe empezar y terminar con una letra minúscula.
- El nombre debe tener 63 caracteres o menos y puede contener caracteres alfanuméricos en minúsculas y guiones (-).
--sourceEl URL del repositorio de Git o la vía de acceso al origen local que contiene el código fuente, por ejemplo, https://github.com/IBM/CodeEngine.--context-dirEl directorio del repositorio que contiene el archivo de paquetes de compilación o el Dockerfile. Especifique este valor si el archivo de paquetes de compilación o el archivo Dockerfile se encuentra en un subdirectorio. - En este ejemplo, el mandato utiliza la estrategia
-
Utilice el mandato
buildrun getpara comprobar el estado de la ejecución de la compilación.ibmcloud ce buildrun get -n helloworld-buildrunSalida de ejemplo
Observe el nombre generado para la imagen y que el nombre del secreto de registro creado automáticamente tiene el formato
ce-auto-icr-private-<region>.Getting build 'helloworld-buildrun' For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun' to follow the logs of the build run. OK Name: helloworld-buildrun ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T15:30:46-04:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:ba3c445a27238040e102c083f76ad8922effcc3a7c4dc97b8472e626d87c11a2 Image: private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun Registry Secret: ce-auto-icr-private-us-south Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Commit: main Context Directory: /hello Dockerfile: Dockerfile
Ejecución de una única compilación con la CLI (con código fuente de repositorio público y acceso proporcionado por el usuario al registro)
En este caso de ejemplo de acceso proporcionado por el usuario, Code Engine compila una imagen a partir del código fuente de repositorio de Git público y, a continuación, la carga en el registro de contenedor con el acceso de registro que proporciona con un único mandato de compilación.
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Cree y trabaje con un proyecto.
- Cree un secreto de registro para que pueda guardar la imagen.
-
Ejecute una compilación para crear una imagen a partir de un repositorio Git público y especifique la ubicación del registro de imágenes para la salida de la compilación con un secreto de registro. Por ejemplo, el siguiente mandato
buildrun submitejecuta una ejecución de compilación denominadahelloworld-buildrun2que se compila desde el repositorio público Githttps://github.com/IBM/CodeEnginey almacena la imagen en el registro deus.icr.io/mynamespace/codeengine-helloworldutilizando el secreto de registro demyregistrypara acceder a este registro.ibmcloud ce buildrun submit --name helloworld-buildrun2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /hello- En este ejemplo, el mandato utiliza la estrategia
dockerfilepredeterminada y el tamaño de compilación demediumpredeterminado. - Como el nombre de rama del repositorio no se especifica con la opción
--commit, Code Engine utiliza automáticamente la rama predeterminada del repositorio especificado, que esmainpara este repositorio de Git. - Si utiliza la opción
--strategycon el valordockerfile, asegúrese de que la opción--dockerfilese ha establecido correctamente con el nombre deldockerfile. El valor predeterminado para la opción--strategyesDockerfile. - Code Engine determina automáticamente si el código fuente reside en un repositorio o en una estación de trabajo local, basándose en el valor de la opción
--source.
Salida de ejemplo
Submitting build run 'helloworld-buildrun2'... Creating image 'us.icr.io/mynamespace/codeengine-helloworld'... Run 'ibmcloud ce buildrun get -n helloworld-buildrun2' to check the build run status. OKEn la tabla siguiente se resumen las opciones que se utilizan con el mandato
buildrun submiten este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce buildrun submit.Descripción del mandato Opción Descripción --nameEl nombre de la ejecución de compilación. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es necesario.
- El nombre debe empezar y terminar con una letra minúscula.
- El nombre debe tener 63 caracteres o menos y puede contener caracteres alfanuméricos en minúsculas y guiones (-).
--imageLa ubicación del registro de imágenes. El formato de la ubicación debe ser REGISTRY/NAMESPACE/REPOSITORYoREGISTRY/NAMESPACE/REPOSITORY:TAG, dondeTAGes opcional. Si no se especificaTAG, el valor predeterminado eslatest.--registry-secretEl secreto de registro que se utiliza para acceder al registro cuando se crea la imagen del contenedor. Ejecute el mandato secret create --format registrypara crear un secreto de registro. El secreto de registro se utiliza para autenticarse con un registro privado.--sourceEl URL del repositorio de Git o la vía de acceso al origen local que contiene el código fuente, por ejemplo, https://github.com/IBM/CodeEngine.--context-dirEl directorio del repositorio que contiene el archivo de paquetes de compilación o el Dockerfile. Especifique este valor si el archivo de paquetes de compilación o el archivo Dockerfile se encuentra en un subdirectorio. - En este ejemplo, el mandato utiliza la estrategia
-
Utilice el mandato
buildrun getpara comprobar el estado de la ejecución de la compilación.ibmcloud ce buildrun get --name helloworld-buildrun2Salida de ejemplo
Getting build run 'helloworld-buildrun2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n helloworld-buildrun2' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n helloworld-buildrun2' to follow the logs of the build run. OK Name: helloworld-buildrun2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T15:57:43-04:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:6312ee613efa5bec7baa20c47f607e7f15473947d5675fd7384491bee8023afc Image: us.icr.io/mynamespace/codeengine-helloworld2 Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Context Directory: /hello Dockerfile: Dockerfile
Si recibe un error de validación del mandato, compruebe que su secreto existe. Si hace referencia a un secreto de registro (--registry-secret) para la imagen y el secreto no existe, consulte Acceso a registros de contenedor.
Para obtener más información sobre las compilaciones, consulte las sugerencias sobre resolución de problemas.
Ejecución de una única compilación que extrae el código fuente del repositorio privado con la CLI
Si el código fuente está ubicado en un repositorio privado y desea utilizar un único mandato para compilar y generar una imagen de contenedor, utilice el mandato buildrun submit para crear la imagen de contenedor
sin crear una configuración de compilación reutilizable.
Para la salida de compilación, puede elegir el acceso automático y dejar que Code Engine se encargue de compilar la imagen automáticamente a partir del código fuente y de almacenarla en IBM Cloud Container Registry. En este caso, no es necesario especificar un secreto de registro ni la ubicación del registro de imágenes. O bien, puede elegir el acceso proporcionado por el usuario y especificar los detalles del registro junto con un secreto de registro para acceder a su imagen creada en el registro.
Para obtener una lista completa de las opciones para ejecutar una única compilación, consulte el mandato ibmcloud ce buildrun submit.
Ejecución de una única compilación con la CLI (con código fuente de repositorio privado y acceso automático al registro)
En este caso de ejemplo de acceso automático, Code Engine compila una imagen a partir del código fuente del repositorio privado y la carga en IBM Cloud Container Registry con acceso automático utilizando las opciones de compilación
con el mandato buildrun submit. En este caso, no es necesario especificar un secreto de registro o la ubicación del registro de imágenes.
Consulte Configuración de autorizaciones para registros de imágenes para obtener más información sobre cómo establecer los permisos necesarios para que Code Engine acceda automáticamente a estas imágenes en Container Registry.
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Cree y trabaje con un proyecto.
- Cree un secreto de repositorio de Git para acceder a su código fuente.
-
Ejecute una compilación para crear una imagen a partir de un repositorio privado y deje que Code Engine almacene automáticamente la imagen y acceda a ella. Por ejemplo, el siguiente mandato de
buildrun submitejecuta una ejecución de compilación denominadahelloworld-buildrun-privateque se compila a partir del repositorio de Git privadohttps://github.com/myprivaterepo/builds.ibmcloud ce buildrun submit --name helloworld-buildrun-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepossh- Este mandato de ejemplo utiliza la estrategia
buildpacksy el tamaño de compilación demedium. - Al no especificar la ubicación del registro de imágenes o un secreto de registro, Code Engine empuja la salida de construcción a IBM Cloud Container Registry con acceso automático.
- Dado que el código fuente en el repositorio Git especificado es privado, el acceso requiere un secreto SSH. Un secreto SSH también se utiliza como un secreto de acceso al repositorio Git. Como resultado,
--sourceque especifique debe utilizar el protocolo SSH, como por ejemplogit@github.com:myprivaterepo/builds.git. El valor de--sourceno debe utilizar el formatohttpohttps. - Como el nombre de rama del repositorio no se especifica con la opción
--commit, Code Engine utiliza automáticamente la rama predeterminada del repositorio especificado. - Code Engine determina automáticamente si el código fuente reside en un repositorio o en una estación de trabajo local, basándose en el valor de la opción
--source.
En la tabla siguiente se resumen las opciones que se utilizan con el mandato
buildrun submiten este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce buildrun submit.Descripción del mandato Opción Descripción --nameEl nombre de la ejecución de compilación. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es necesario.
- El nombre debe empezar y terminar con una letra minúscula.
- El nombre debe tener 63 caracteres o menos y puede contener caracteres alfanuméricos en minúsculas y guiones (-).
--sourceEl URL del repositorio de Git o la vía de acceso al origen local que contiene el código fuente, por ejemplo, git@github.com:myprivaterepo/builds.git.--context-dirEl directorio del repositorio que contiene el archivo de paquetes de compilación o el Dockerfile. Especifique este valor si el archivo de paquetes de compilación o el archivo Dockerfile se encuentra en un subdirectorio. --strategyLa estrategia que se va a utilizar para compilar la imagen. Los valores válidos son dockerfileybuildpacks.--git-repo-secretEl nombre del secreto SSH, que contiene las credenciales para acceder al repositorio privado que contiene el código fuente para crear la imagen de contenedor. Ejecute el mandato secret create --sshpara crear este secreto. Un secreto SSH también se utiliza como un secreto de acceso al repositorio Git. - Este mandato de ejemplo utiliza la estrategia
-
Utilice el mandato
buildrun getpara comprobar el estado de la ejecución de la compilación.ibmcloud ce buildrun get --name helloworld-buildrun-privateSalida de ejemplo
Getting build run 'helloworld-buildrun-private'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private' to follow the logs of the build run. OK Name: helloworld-buildrun-private ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-08T06:02:36-05:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6 Image: private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-buildrun-private Registry Secret: ce-auto-icr-private-us-south Build Strategy: buildpacks-v3-medium Timeout: 10m0s Source: git@github.com:myprivaterepo/builds.git Context Directory: /hello Repo Secret: myrepossh
Ejecución de una única compilación con la CLI (con código fuente de repositorio privado y acceso a registro proporcionado por el usuario al registro)
En este caso de ejemplo de acceso proporcionado por el usuario, Code Engine compila una imagen a partir del código fuente de repositorio privado con un secreto de repositorio de Git que proporciona y, a continuación, la carga en el registro de contenedor con el acceso de registro que proporciona con un único mandato de compilación.
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Cree y trabaje con un proyecto.
- Cree un secreto SSH para acceder al origen.
- Cree un secreto de registro para que pueda guardar la imagen.
-
Ejecute una compilación para crear una imagen a partir de un repositorio privado y especifique la ubicación del registro de imágenes para la salida de la compilación con un secreto de registro. El siguiente mandato
buildrun submitde ejemplo ejecuta una ejecución de compilación denominadahelloworld-buildrun-private2que se compila desde el repositorio privado Githttps://github.com/myprivaterepo/buildsy almacena la imagen enus.icr.io/mynamespace/codeengine-helloworldutilizando el secreto de registromyregistrypara acceder a este registro.ibmcloud ce buildrun submit --name helloworld-buildrun-private2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepossh- Este mandato de ejemplo utiliza la estrategia
buildpacksy el tamaño de compilación demediumpredeterminado. - Dado que el repositorio Git proporcionado es privado, el acceso requiere un secreto SSH. Un secreto SSH también se utiliza como un secreto de acceso al repositorio Git. Como resultado,
--sourceque especifique debe utilizar el protocolo SSH, como por ejemplogit@github.com:myprivaterepo/builds.git. El valor de--sourceno debe utilizar el formatohttpohttps. - Como el nombre de rama del repositorio no se especifica con la opción
--commit, Code Engine utiliza automáticamente la rama predeterminada del repositorio especificado. - Code Engine determina automáticamente si el código fuente reside en un repositorio o en una estación de trabajo local, basándose en el valor de la opción
--source.
En la tabla siguiente se resumen las opciones que se utilizan con el mandato
buildrun submiten este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce buildrun submit.Descripción del mandato Opción Descripción --nameEl nombre de la ejecución de compilación. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es necesario.
- El nombre debe empezar y terminar con una letra minúscula.
- El nombre debe tener 63 caracteres o menos y puede contener caracteres alfanuméricos en minúsculas y guiones (-).
--imageLa ubicación del registro de imágenes. El formato de la ubicación debe ser REGISTRY/NAMESPACE/REPOSITORYoREGISTRY/NAMESPACE/REPOSITORY:TAG, dondeTAGes opcional. Si no se especificaTAG, el valor predeterminado eslatest.--registry-secretEl secreto de registro que se utiliza para acceder al registro cuando se crea la imagen del contenedor. Ejecute el mandato secret create --format registrypara crear un secreto de registro. El secreto de registro se utiliza para autenticarse con un registro privado.--sourceEl URL del repositorio de Git o la vía de acceso al origen local que contiene el código fuente, por ejemplo, git@github.com:myprivaterepo/builds.git.--context-dirEl directorio del repositorio que contiene el archivo de paquetes de compilación o el Dockerfile. Especifique este valor si el archivo de paquetes de compilación o el archivo Dockerfile se encuentra en un subdirectorio. --strategyLa estrategia que se va a utilizar para compilar la imagen. Los valores válidos son dockerfileybuildpacks.--git-repo-secretEl nombre del secreto SSH, que contiene las credenciales para acceder al repositorio privado que contiene el código fuente para crear la imagen de contenedor. Ejecute el mandato secret create --sshpara crear este secreto. Un secreto SSH también se utiliza como un secreto de acceso al repositorio Git. - Este mandato de ejemplo utiliza la estrategia
-
Utilice el mandato
buildrun getpara comprobar el estado de la ejecución de la compilación.ibmcloud ce buildrun get --name helloworld-buildrun-private2Salida de ejemplo
Getting build run 'helloworld-buildrun-private2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private2' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private2' to follow the logs of the build run. OK Name: helloworld-buildrun-private2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d10h Created: 2022-06-08T06:11:05-05:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6 Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: buildpacks-v3-medium Timeout: 10m0s Source: git@github.com:myprivaterepo/builds.git Context Directory: /hello Repo Secret: myrepossh
Ejecución de una única compilación que extrae el código fuente de un directorio local
Si el código fuente está en la estación de trabajo local y desea utilizar un único mandato para compilar y generar una imagen de contenedor, utilice el mandato buildrun submit para crear la imagen de contenedor
sin crear una configuración de compilación reutilizable.
Para la salida de compilación, puede elegir el acceso automático y dejar que Code Engine se encargue de compilar la imagen automáticamente a partir del código fuente y de almacenarla en IBM Cloud Container Registry. En este caso, no es necesario especificar un secreto de registro ni la ubicación del registro de imágenes. O bien, puede elegir el acceso proporcionado por el usuario y especificar los detalles del registro junto con un secreto de registro para acceder a su imagen creada en el registro.
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 y se carga en la instancia de IBM Cloud Container Registry. Tenga en cuenta que solo puede tener IBM Cloud Container Registry como destino para las compilaciones locales. La imagen de origen se crea en el mismo espacio de nombres que la imagen de compilación.
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 más ejemplos de patrones de archivos a ignorar, consulte el repositorio .gitignoreGitHub.
Para obtener una lista completa de las opciones para ejecutar una única compilación, consulte el mandato ibmcloud ce buildrun submit.
Ejecución de una única compilación con la CLI (con el código fuente local y el acceso automático al registro)
En este caso de ejemplo de acceso automático, Code Engine compila una imagen a partir del código fuente local y la carga automáticamente en IBM Cloud Container Registry con acceso automático utilizando las opciones de compilación
con el mandato buildrun submit.
Consulte Configuración de autorizaciones para registros de imágenes para obtener más información sobre cómo establecer los permisos necesarios para que Code Engine acceda automáticamente a estas imágenes en Container Registry. En este caso, no es necesario especificar un secreto de registro o la ubicación del registro de imágenes.
Antes de empezar
Antes de trabajar con el código fuente local, asegúrese de que el código fuente esté 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, ejecute una compilación para compilar una imagen a partir del código fuente dehelloworlden la estación de trabajo local y deje que Code Engine almacene automáticamente la imagen y acceda a ella. Este mandato compila y envía automáticamente la imagen a un espacio de nombres Container Registry en su cuenta. Si no tiene un espacio de nombres Container Registry existente, Code Engine crea automáticamente uno. Por ejemplo, el siguiente mandatobuildrun submitejecuta una ejecución de compilación denominadabuildrun-local-dockerfileque se crea a partir del código fuente local.ibmcloud ce buildrun submit --name buildrun-local-dockerfile --source ..indica que el código fuente de compilación se encuentra en el directorio de trabajo actual.- Este mandato de ejemplo utiliza la estrategia
dockerfilepredeterminada y el tamaño de compilación demediumpredeterminado. - Al no especificar la ubicación del registro de imágenes o un secreto de registro, Code Engine empuja la salida de construcción a IBM Cloud Container Registry con acceso automático.
- Code Engine determina automáticamente si el código fuente reside en un repositorio o en una estación de trabajo local, basándose en el valor de la opción
--source.
Salida de ejemplo
Packaging files to upload from source path '.'... Submitting build run 'buildrun-local-dockerfile'... Creating image 'private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile'... Run 'ibmcloud ce buildrun get -n buildrun-local-dockerfile' to check the build run status. OKEn la tabla siguiente se resumen las opciones que se utilizan con el mandato
buildrun submiten este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce buildrun submit.Descripción del mandato Opción Descripción --nameEl nombre de la ejecución de compilación. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es necesario.
- El nombre debe empezar y terminar con una letra minúscula.
- El nombre debe tener 63 caracteres o menos y puede contener caracteres alfanuméricos en minúsculas y guiones (-).
--sourceLa vía de acceso al origen local que contiene el código fuente o el URL del repositorio de Git, por ejemplo, .. - Este mandato de ejemplo utiliza la estrategia
-
Utilice el mandato
buildrun getpara comprobar el estado de la ejecución de la compilación.ibmcloud ce buildrun get --name buildrun-local-dockerfileSalida de ejemplo
Getting build run 'buildrun-local-dockerfile'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile' to follow the logs of the build run. OK Name: buildrun-local-dockerfile ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T16:09:34-04:00 Build Type: local Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Source Image Digest: sha256:ced7abc34f018941145efb56e9a0c1fca99236653c2a05dd5b8b985928ff5f4f Image Digest: sha256:6459430ff49436494aa5e3103eaac98ad90ea50df88a2e14af6314fe88f3c952 Image: private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile Registry Secret: ce-auto-icr-private-us-south Build Strategy: dockerfile-medium Timeout: 10m0s Source Image: private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile-source Source Registry Secret: ce-auto-icr-private-us-south Dockerfile: DockerfileObserve el nombre generado para la imagen y que el nombre del secreto de registro creado automáticamente tiene el formato
ce-auto-icr-private-<region>.
Ejecución de una única compilación con la CLI (con el código fuente local y el acceso proporcionado por el usuario al registro)
En este caso de ejemplo de acceso proporcionado por el usuario, Code Engine compila una imagen a partir del código fuente local y, a continuación, la carga en el registro de contenedor con el acceso de registro que proporciona con
el mandato buildrun submit.
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Cree y trabaje con un proyecto.
- Cree un secreto de registro para que pueda guardar la imagen.
Antes de trabajar con el código fuente local, asegúrese de que el código fuente esté 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. -
Desde el directorio
CodeEngine\helloworld, ejecute una ejecución de compilación para compilar una imagen desde lahelloworldfuente en su estación de trabajo local y especifique la ubicación del registro de imágenes para la salida de compilación con un secreto de registro. Este mandatobuildrun submitcrea automáticamente la imagen y la envía al registro que especifique con la opción--image. Especifique la opción--registry-secretpara acceder al registro.ibmcloud ce buildrun submit --name buildrun-local-dockerfile2 --source . --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry.indica que el código fuente de compilación se encuentra en el directorio de trabajo actual.- Code Engine determina automáticamente si el código fuente reside en un repositorio o en una estación de trabajo local, basándose en el valor de la opción
--source. - En este ejemplo, el mandato utiliza la estrategia
dockerfilepredeterminada y el tamaño de compilación demediumpredeterminado.
En la tabla siguiente se resumen las opciones que se utilizan con el mandato
buildrun submiten este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce buildrun submit.Descripción del mandato Opción Descripción --nameEl nombre de la ejecución de compilación. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es necesario.
- El nombre debe empezar y terminar con una letra minúscula.
- El nombre debe tener 63 caracteres o menos y puede contener caracteres alfanuméricos en minúsculas y guiones (-).
--sourceLa vía de acceso al origen local que contiene el código fuente o el URL del repositorio de Git, por ejemplo, ..--imageLa ubicación del registro de imágenes. El formato de la ubicación debe ser REGISTRY/NAMESPACE/REPOSITORYoREGISTRY/NAMESPACE/REPOSITORY:TAG, dondeTAGes opcional. Si no se especificaTAG, el valor predeterminado eslatest.--registry-secretEl secreto de registro que se utiliza para acceder al registro cuando se crea la imagen del contenedor. Ejecute el mandato secret create --format registrypara crear un secreto de registro. El secreto de registro se utiliza para autenticarse con un registro privado. - Code Engine determina automáticamente si el código fuente reside en un repositorio o en una estación de trabajo local, basándose en el valor de la opción
-
Utilice el mandato
buildrun getpara comprobar el estado de la ejecución de la compilación.ibmcloud ce buildrun get --name buildrun-local-dockerfile2Salida de ejemplo
Getting build run 'buildrun-local-dockerfile2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile2' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile2' to follow the logs of the build run. OK Name: buildrun-local-dockerfile2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T16:34:42-04:00 Build Type: local Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Source Image Digest: sha256:00fb80a8cdc17394ccae564efceb81f48c2cbcbd76afd0fb0b74019352933a63 Image Digest: sha256:25bc4bedccc1b34c98ccd92368246df3e61a7cf0cf4915a32f111669b60e2fea Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source Image: us.icr.io/mynamespace/codeengine-helloworld-source Source Registry Secret: myregistry Dockerfile: Dockerfile
Pasos siguientes para compilaciones
Ahora que ha creado una imagen de contenedor a partir del código fuente, puede crear una aplicación o un trabajo que utilice la imagen de contenedor. Consulte Despliegue de aplicaciones y Ejecución de trabajos.
¿Desea ver más ejemplos de código? Consulte los ejemplos de para IBM Cloud Code Engine GitHub.