Creación de aplicaciones mediante paquetes de compilación
Una compilación o una compilación de imagen es un mecanismo que puede utilizar para crear una imagen de contenedor a partir del código fuente. Code Engine permite compilar desde un archivo Docker y desde Cloud Native Buildpacks.
Antes de empezar
Todos los usuarios de Code Engine están obligados a tener una cuenta de pago por uso. Las guías de aprendizaje pueden incurrir en costes. Utilice el Estimador de costes para generar una estimación de costes basada en el uso previsto. Para obtener más información, consulte Precios deCode Engine.
Configuración del acceso de registro
Puesto que la salida de la compilación es una imagen que se almacena en un registro de contenedores, debe configurar el acceso a un registro de imágenes para Code Engine. Para almacenar
una imagen en Docker Hub, cree el acceso de registro utilizando el mandato ibmcloud ce secret create --format registry. En el ejemplo siguiente,
utilice dockerhub como nombre del acceso de registro y especifique el ID de Docker Hub como nombre de usuario. Para la contraseña de Docker Hub, puede especificar la contraseña de Docker Hub o una señal de acceso.
ibmcloud ce secret create --format registry --name dockerhub --server https://index.docker.io/v1/ --username username --password password
Salida de ejemplo
Creating registry secret 'dockerhub'...
OK
Para obtener más información, consulte la documentación sobre adición de acceso de registro.
Creación de una compilación
Cree una compilación que contenga información sobre el código fuente de la app o del trabajo. La información puede incluir información de ubicación y acceso para el trabajo o la app.
El mandato ibmcloud ce build create no crea una imagen, pero crea la configuración para crear una imagen. El mandato ibmcloud ce buildrun submit hace referencia a la configuración de compilación para crear una imagen. Las opciones que especifique en el mandato build create o build update no se validan ni se utilizan para crear
una imagen hasta que se ejecute el mandato buildrun submit. La configuración de compilación permite varias compilaciones posteriores de una imagen, por ejemplo cuando se aplican cambios en el repositorio de origen.
En el ejemplo siguiente, para crear la configuración de compilación, utilice el mandato ibmcloud ce build create. Utilice tutorial-build como nombre de la compilación y especifique https://github.com/IBM/CodeEngine como la ubicación del código fuente y /s2i-buildpacks como la carpeta de directorio de contexto que contiene el origen. Utilice el secreto
de registro de dockerhub que se ha creado anteriormente para el acceso de registro. Especifique buildpacks como estrategia de compilación para compilar el código fuente y especifique small como tamaño
de compilación.
ibmcloud ce build create --name tutorial-build --source https://github.com/IBM/CodeEngine --commit main --context-dir /s2i-buildpacks --registry-secret dockerhub --image docker.io/<your_docker_ID>/tutorial --size small --strategy buildpacks
Salida de ejemplo
Creating build 'tutorial-build'...
OK
La opción size especifica el tamaño de la compilación, que determina la cantidad de recursos que se utilizan. Los valores válidos son small, medium, large, xlarge y xxlarge.
El valor de size refleja los requisitos de compilación del código fuente para la app o el trabajo. Si la compilación falla debido a la falta de memoria o de espacio de disco, o no es lo suficientemente rápida, intente cambiar
el tamaño por uno mayor. Un tamaño de compilación mayor también significa que se asigna más memoria y más núcleos de CPU al proceso de compilación. Aumentar este tamaño probablemente puede acelerar el proceso de compilación, pero también aumenta
el coste. Para obtener más información sobre las compilaciones, consulte las sugerencias sobre resolución de problemas.
Envío de una ejecución de compilación
Ahora que se ha creado su configuración de compilación, puede ejecutar una compilación basada en dicha configuración de compilación mediante el mandato ibmcloud ce buildrun submit.
En el ejemplo siguiente, haga referencia a la configuración de compilación de tutorial-build y envíe la ejecución de compilación. El sistema genera un nombre de ejecución de compilación exclusivo. Si lo desea, puede proporcionar
un nombre para la ejecución de compilación con la opción --name, que puede ser útil porque el nombre de la ejecución de compilación es necesario para obtener detalles de ejecución de compilación. En este ejemplo, el sistema genera
automáticamente el nombre de ejecución de la compilación.
ibmcloud ce buildrun submit --build tutorial-build
Salida de ejemplo
Submitting build run 'tutorial-build-run-851026-090000000'...
Run 'ibmcloud ce buildrun get -n tutorial-build-run-851026-090000000' to check the build run status.
OK
Para comprobar el estado de ejecución de la compilación, utilice el mandato buildrun get ibmcloud ce buildrun get para visualizar
detalles de la ejecución de compilación.
ibmcloud ce buildrun get --name tutorial-build-run-851026-090000000
Salida de ejemplo
Getting build run 'tutorial-build-run-851026-090000000'...
[...]
OK
Name: tutorial-build-run-851026-090000000
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 3m42s
Created: 2021-03-14T14:31:21-05:00
Summary: Succeeded
Status: Succeeded
Reason: Succeeded
La compilación se ha completado cuando el estado es Succeeded.
Si hay algún problema con la ejecución de compilación, utilice el mandato ibmcloud ce buildrun logs para visualizar registros acerca de la ejecución
de compilación.
ibmcloud ce buildrun logs --buildrun tutorial-build-run-851026-090000000
Salida de ejemplo
Getting build run 'tutorial-build-run-851026-090000000'...
Getting instances of build run 'tutorial-build-run-851026-090000000'...
Getting logs for build run 'tutorial-build-run-851026-090000000'...
OK
tutorial-build-run-851026-090000000-7vlrw-pod-c9t6g/step-git-source-source-7tbwh:
{"level":"info","ts":1610378702.42616,"caller":"git/git.go:165","msg":"Successfully cloned https://github.com/IBM/CodeEngine @ 6b66f2bc3e1277c2e6475608a9c50335712116e0 (grafted, HEAD, origin/main) in path /workspace/source"}
{"level":"info","ts":1610378703.5453625,"caller":"git/git.go:203","msg":"Successfully initialized and updated submodules in path /workspace/source"}
[...]
La imagen de contenedor se ha creado correctamente a partir del código fuente utilizando la estrategia de compilación de paquetes de compilación.
Trabajar con la imagen del contenedor
Ahora que la imagen de contenedor está compilada y la imagen se ha enviado a la ubicación de registro de contenedores configurada, puede desplegar la imagen de Code Engine. Por ejemplo, puede crear una app de Code Engine que utilice la imagen creada.
ibmcloud ce application create --name tutorial-app --image <your_docker_ID>/tutorial
Salida de ejemplo
Creating application 'tutorial-app'...
[...]
Pasos siguientes para paquetes de compilación
Para obtener más información, consulte Despliegue de aplicaciones.
¿El proyecto de código fuente utiliza Dockerfile? Siga los mismos pasos, pero especifique la estrategia de compilación de Dockerfile para crear una imagen para la aplicación o el trabajo. Para obtener más información acerca de Dockerfile,
consulte Cómo escribir un Dockerfile para Code Engine.
¿Desea ver más ejemplos de código? Consulte los ejemplos de para IBM Cloud Code Engine GitHub.