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)

  1. Vaya al panel de control de Code Engine.

  2. Seleccione el proyecto en el que ha añadido el registro de contenedores.

  3. En la página del proyecto, pulse Compilaciones de imágenes.

  4. 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.

  5. 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.

  6. 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.

  7. 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 secret y 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.
  8. 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

  1. 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 create crea una configuración de compilación denominada helloworld-build que se compila a partir del código fuente en el repositorio de Git público https://github.com/IBM/CodeEngine. En este ejemplo, el mandato utiliza la estrategia dockerfile predeterminada y el tamaño de compilación de medium predeterminado. 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 es main para 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 /hello
    

    Salida de ejemplo

    Creating build helloworld-build...
    OK
    

    En la tabla siguiente se resumen las opciones que se utilizan con el mandato build create en este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandato ibmcloud ce build create.

    Descripción del mandato
    Opción Descripción
    --name

    El 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 (-).
    --source El URL del repositorio Git que contiene el código fuente; por ejemplo, https://github.com/IBM/CodeEngine.
    --context-dir El 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.
  2. Utilice el mandato build get para comprobar el estado de la compilación.

    ibmcloud ce build get --name helloworld-build
    

    Salida 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

  1. 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 --image para proporcionar la ubicación del registro de imágenes y especifique la opción --registry-secret para acceder al registro. Por ejemplo, el mandato siguiente crea una configuración de compilación denominada helloworld-build2 que se compila a partir del repositorio Git público https://github.com/IBM/CodeEngine y almacena la imagen en us.icr.io/mynamespace/codeengine-helloworld utilizando el secreto de registro de myregistry. En este ejemplo, el mandato utiliza la estrategia dockerfile predeterminada y el tamaño de compilación de medium predeterminado. 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 es main para este repositorio de Git.

    Si utiliza la opción --strategy con el valor dockerfile, asegúrese de que la opción --dockerfile se ha establecido correctamente con el nombre del dockerfile. El valor predeterminado para la opción --strategy es Dockerfile.

    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 /hello
    

    Salida de ejemplo

    Creating build helloworld-build2...
    OK
    

    En la tabla siguiente se resumen las opciones que se utilizan con el mandato build create en este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandato ibmcloud ce build create.

    Descripción del mandato
    Opción Descripción
    --name

    El 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 (-).
    --image La ubicación del registro de imágenes. El formato de la ubicación debe ser REGISTRY/NAMESPACE/REPOSITORY o REGISTRY/NAMESPACE/REPOSITORY:TAG, donde TAG es opcional. Si no se especifica TAG, el valor predeterminado es latest.
    --registry-secret El 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.
    --source El URL del repositorio Git que contiene el código fuente; por ejemplo, https://github.com/IBM/CodeEngine.
    --context-dir El 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.
  2. Utilice el mandato build get para comprobar el estado de la compilación.

    ibmcloud ce build get --name helloworld-build2
    

    Salida 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.