Crear una configuración de compilación que extraiga el código fuente de un repositorio público
Si el código fuente se encuentra en un repositorio público, cree una configuración de compilación con valores que incluyan información sobre dónde extraer el código fuente de un repositorio público. Para la salida de la compilación, puede optar por especificar los detalles del registro junto con un secreto de registro para acceder a su imagen construida en el registro. 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. En este caso, no es necesario especificar un secreto de registro ni la ubicación del registro de imágenes.
La creación de una configuración de compilación no crea una imagen, sino que crea la configuración para crear una imagen. Luego debe ejecutar una compilación que haga referencia a la configuración de compilación para crear una imagen. La configuración de compilación no se valida ni se utiliza para crear una imagen hasta que se ejecuta la compilación. La configuración de compilación permite varias compilaciones posteriores de una imagen, por ejemplo cuando se aplican cambios en el repositorio de origen.
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.
Creación de una configuración de compilación desde la consola (repositorio público)
-
Vaya al panel de control de Code Engine.
-
Seleccione el proyecto en el que ha añadido el registro de contenedores.
-
En la página del proyecto, pulse Compilaciones de imágenes.
-
En la pestaña Compilación de imagen, pulse Crear. Se abre el panel lateral Especificar detalles de compilación en el que se especifican los detalles de la compilación.
-
En la sección Origen, especifique un nombre para la compilación, el URL del repositorio de origen y el acceso a repositorio de código.
- Si su código está en un repositorio público, utilice una URL HTTPS y seleccione Ninguno para el acceso al repositorio de código. Un ejemplo de un URL HTTPS es
https://github.com/IBM/CodeEngine. - Si el código está en un repositorio privado, utilice un URL SSH para el URL del repositorio de código y seleccione el nombre de un acceso al repositorio de código existente o cree un acceso al repositorio de código.
Un ejemplo de un URL SSH es
git@github.com:IBM/CodeEngine.git. - Opcionalmente, seleccione un nombre de rama de origen. Si no proporciona un nombre de rama y deja el campo vacío, Code Engine utiliza automáticamente la rama predeterminada del repositorio especificado. Puede especificar cualquier otro nombre de rama, etiqueta o ID de confirmación.
Pulse Siguiente para continuar.
- Si su código está en un repositorio público, utilice una URL HTTPS y seleccione Ninguno para el acceso al repositorio de código. Un ejemplo de un URL HTTPS es
-
En la sección Estrategia, seleccione la estrategia que desea utilizar.
- Si selecciona Dockerfile, también puede especificar una vía de acceso alternativa para el Dockerfile.
- Seleccione el tamaño de la compilación en Recursos de compilación.
Pulse Siguiente para continuar.
-
En la sección Salida, especifique los detalles de la imagen de contenedor.
- Seleccione un secreto de registro existente o haga clic en Crear secreto de registro para añadir uno nuevo.
- Si usted está construyendo su imagen a una Container Registry instancia que está en su cuenta, puede seleccionar
Code Engine managed secrety Code Engine crea y gestiona el secreto para usted. - A continuación, seleccione el espacio de nombres, el repositorio y la etiqueta de la imagen que desea crear. Usted puede elegir para Code Engine tp crear y gestionar el espacio de nombres en Container Registry para usted.
- Si la imagen existe en Container Registry, puede seleccionar una de las imágenes existentes o especificar un nuevo repositorio o etiqueta.
-
Pulse Finalizado para finalizar la creación de la compilación.
Después de crear la configuración de compilación, debe ejecutar la compilación para crear el archivo de imagen. Después de crear el archivo de imagen, puede desplegar una app o ejecutar un trabajo con el archivo de imagen recién creado.
Creación de una configuración de compilación con la CLI (repositorio público)
Para crear una configuración de compilación con la CLI, utilice el mandato build create. Para ver una lista completa de opciones, consulte el mandato ibmcloud ce build create.
Con el mandato build create, puede dejar que Code Engine se encargue de compilar la imagen automáticamente a partir del código fuente y, a continuación, de almacenarla en IBM Cloud Container Registry. Para este
caso de acceso automático, no es necesario especificar un secreto de registro o la ubicación del registro de imágenes. O bien, puede especificar la ubicación de la salida de la imagen de compilación y proporcionar un secreto de registro
para que Code Engine pueda acceder y enviar el resultado de la compilación a su registro.
Creación de una configuración de compilación con la CLI (con código fuente de repositorio público y acceso automático al registro)
En este caso de ejemplo, Code Engine compila una imagen a partir del código fuente del repositorio de Git público y la carga automáticamente en IBM Cloud Container Registry con acceso automático. 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
-
Cree una configuración de compilación para compilar una imagen a partir de un Git público y deje que Code Engine almacene automáticamente la imagen y acceda a ella. Por ejemplo, el siguiente mandato de
build createcrea una configuración de compilación denominadahelloworld-buildque se compila a partir del código fuente en el repositorio de Git públicohttps://github.com/IBM/CodeEngine. En este ejemplo, el mandato 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--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.ibmcloud ce build create --name helloworld-build --source https://github.com/IBM/CodeEngine --context-dir /helloSalida de ejemplo
Creating build helloworld-build... OKEn la tabla siguiente se resumen las opciones que se utilizan con el mandato
build createen este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce build create.Descripción del mandato Opción Descripción --nameEl nombre de la compilación. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es obligatorio.
- El nombre debe empezar por una letra minúscula.
- El nombre debe terminar con un carácter alfanumérico en minúsculas.
- El nombre debe tener 55 caracteres o menos y puede contener letras, números y guiones (-).
--sourceEl URL del repositorio Git 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. Este valor es opcional. -
Utilice el mandato
build getpara comprobar el estado de la compilación.ibmcloud ce build get --name helloworld-buildSalida 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-build' OK Name: helloworld-build ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-05-24T09:58:43-05:00 Build Type: git Status: Succeeded Reason: all validations succeeded Image: private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-build 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
Después de crear la configuración de compilación, debe ejecutar la compilación para crear el archivo de imagen. Después de crear el archivo de imagen, puede desplegar una app o ejecutar un trabajo con el archivo de imagen recién creado.
Creación de una configuración de compilación con la CLI (con código fuente del repositorio público y acceso proporcionado por el usuario al registro)
En este caso de ejemplo, Code Engine compila una imagen a partir del código fuente del repositorio de Git público y, a continuación, la carga en el registro de contenedor con el acceso de registro que proporciona el usuario.
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.
-
Cree una configuración de compilación para compilar 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. Con el mandato
build create, especifique la opción--imagepara proporcionar la ubicación del registro de imágenes y especifique la opción--registry-secretpara acceder al registro. Por ejemplo, el mandato siguiente crea una configuración de compilación denominadahelloworld-build2que se compila a partir del repositorio Git públicohttps://github.com/IBM/CodeEnginey almacena la imagen enus.icr.io/mynamespace/codeengine-helloworldutilizando el secreto de registro demyregistry. En este ejemplo, el mandato 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--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.ibmcloud ce build create --name helloworld-build2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /helloSalida de ejemplo
Creating build helloworld-build2... OKEn la tabla siguiente se resumen las opciones que se utilizan con el mandato
build createen este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce build create.Descripción del mandato Opción Descripción --nameEl nombre de la compilación. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es obligatorio.
- El nombre debe empezar por una letra minúscula.
- El nombre debe terminar con un carácter alfanumérico en minúsculas.
- El nombre debe tener 55 caracteres o menos y puede contener letras, números 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. Puede añadir el secreto de registro ejecutando el mandato secret create --format registry. El secreto de registro se utiliza para autenticarse con un registro privado.--sourceEl URL del repositorio Git 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. Este valor es opcional. -
Utilice el mandato
build getpara comprobar el estado de la compilación.ibmcloud ce build get --name helloworld-build2Salida de ejemplo
Getting build 'helloworld-build2' OK Name: helloworld-build2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2021-03-14T14:48:19-05:00 Status: Succeeded Reason: all validations succeeded Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Commit: main Context Directory: /hello Dockerfile: Dockerfile
Después de crear la configuración de compilación, debe ejecutar la compilación para crear el archivo de imagen. Después de crear el archivo de imagen, puede desplegar una app o ejecutar un trabajo con el archivo de imagen recién creado.
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 su imagen y el secreto no existe, consulte Acceso a los registros de contenedores.
Para obtener más información sobre las compilaciones, consulte las sugerencias sobre resolución de problemas.