Despliegue de la aplicación a partir del código fuente del repositorio
Puede desplegar la aplicación 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.
Despliegue de la aplicación a partir del código fuente del repositorio desde la consola
Puede desplegar la aplicación directamente desde el código fuente con la consola.
Antes de empezar, planifique la compilación. También puede encontrar consejos para crear un Dockerfile.
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 subir imágenes a una cuenta de Container Registry distinta o a una cuenta privada de Docker Hub, consulte Acceder a registros de contenedor.
Para obtener más 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 Aplicación.
- Escriba un nombre para la aplicación. Utilice un nombre para la aplicación 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 desplegar una app.
- 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, seleccioneNone
para 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.
- Seleccione una ubicación de registro de contenedor como, por ejemplo,
IBM Registry Dallas
para especificar dónde almacenar la imagen de la salida de compilación. Si el registro es privado, debe configurar un acceso al mismo. - Proporcione información de registro sobre dónde almacenar la imagen de la salida de compilación. Seleccione un secreto de Registro existente o cree uno nuevo. Si crea la imagen en una instancia de Container Registry que está
en su cuenta, puede seleccionar
Code Engine managed secret
y dejar que Code Engine cree y gestione el secreto por usted. - 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 de tiempo de ejecución o las variables de entorno para la app. Para obtener más información sobre estas opciones, consulte Opciones para la visibilidad de puntos finales de aplicaciones y Opciones para desplegar una aplicación.
- Pulse Crear.
- Una vez que se ha enviado la ejecución de la compilación, se envía la imagen de contenedor compilada a Container Registry y, a continuación, la aplicación extrae la imagen y la despliega. Después de que el estado de la aplicación cambie a Preparado, puede probar la aplicación. Pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación.
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 desplegado la aplicación, puede ver información sobre las revisiones de la aplicación y las instancias en ejecución y los detalles de configuración.
Despliegue de la aplicación a partir del código fuente del repositorio con la CLI
Puede desplegar la aplicación directamente a partir del código fuente del repositorio con la CLI. Utilice el mandato app create
para compilar una imagen a partir del código fuente del repositorio de Git y desplegar
la aplicación para hacer referencia a esta imagen compilada.
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 y despliega la aplicación para hacer referencia a
esta imagen compilada. Debe proporcionar solo un nombre para la aplicación 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. Para ver una lista completa de opciones, consulte el mandato ibmcloud ce app create
.
Para obtener más información sobre los permisos necesarios para acceder a los registros de imágenes, consulte Configuración de autorizaciones para registros de imágenes.
El siguiente mandato de ejemplo application create
crea y despliega la aplicación myapp
, que hace referencia a una imagen compilada a partir del código fuente de compilación de https://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 su cuenta, y la aplicación hace referencia a esta imagen compilada. Al especificar la opción --build-context-dir
,
la compilación utiliza el código fuente en el directorio helloworld
. Este mandato de ejemplo 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 --build-commit
, Code Engine utiliza automáticamente la rama predeterminada del repositorio especificado.
ibmcloud ce application create --name myapp --build-source https://github.com/IBM/CodeEngine --build-context-dir helloworld
Salida de ejemplo
Creating application 'myapp'...
Submitting build run 'myapp-run-220411-13abcdefg'...
Creating image 'private.us.icr.io/ce--abcde-4svg40kna19/app-myapp:220411-1756-if8jv'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220411-13abcdefg' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK
https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
Observa que la salida del comando application create
proporciona información sobre la progresión de la ejecución de la compilación antes de que se cree y despliegue la aplicación.
En este ejemplo, la imagen compilada se carga en el espacio de nombres ce--abcde-4svg40kna19
en Container Registry.
En la tabla siguiente se resumen las opciones que se utilizan con el mandato app create
en este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandato ibmcloud ce app create
.
Opción | Descripción |
---|---|
--name |
El nombre de la aplicación. Utilice un nombre que sea exclusivo dentro del proyecto. Este valor es obligatorio.
|
--build-source |
El URL del repositorio Git que contiene el código fuente; por ejemplo, https://github.com/IBM/CodeEngine . |
--build-context-dir |
El directorio del repositorio que contiene el archivo de paquetes de compilación o el Dockerfile. Este valor es opcional. |
La salida siguiente muestra el resultado del mandato application get
para este ejemplo, incluida la información sobre la compilación.
Salida de ejemplo
[...]
Name: myapp
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
URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local
Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
Status Summary: Application deployed successfully
Environment Variables:
Type Name Value
Literal CE_API_BASE_URL https://api.us-south.codeengine.cloud.ibm.com
Literal CE_APP myapp
Literal CE_DOMAIN us-south.codeengine.appdomain.cloud
Literal CE_PROJECT_ID abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Literal CE_REGION us-south
Literal CE_SUBDOMAIN abcdabcdab
Image: private.us.icr.io/ce--27fe9-4svg40kna19/app-myapp:220414-2010-sqsoj
Resource Allocation:
CPU: 1
Ephemeral Storage: 400M
Memory: 4G
Registry Secrets:
ce-auto-icr-private-us-south
Revisions:
myapp-00001:
Age: 23m
Latest: true
Traffic: 100%
Image: private.us.icr.io/ce--27fe9-4svg40kna19/app-myapp:220414-2010-sqsoj (pinned to 86944c)
Running Instances: 0
Runtime:
Concurrency: 100
Maximum Scale: 10
Minimum Scale: 0
Timeout: 300
Build Information:
Build Run Name: myapp-run-220414-161009244
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 myapp-run-220414-161009244' for details.
[...]
Ahora que la aplicación se crea y se despliega a partir del código fuente del repositorio, puede actualizarla para que se adapte a sus necesidades utilizando el mandato ibmcloud ce app update
.
Para obtener más información sobre la actualización de aplicaciones, consulte Actualización de la aplicación. Si desea actualizar el código fuente para utilizarlo con la aplicación,
debe proporcionar la opción --build-source
en el mandato application update
.
Cuando la app se despliega 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 desplegar la aplicación, acceda a la aplicación a través de un URL.
-
Puede crear una correlación de dominio personalizado y asignarla a la app. Para obtener más información sobre el despliegue de apps en varias regiones con un nombre de dominio personalizado, consulte Configuración de una aplicación de alta disponibilidad.
-
Ahora que su aplicación está desplegada, considere la posibilidad de hacer que sus aplicaciones estén basadas en eventos. Mediante el uso de suscripciones de sucesos, puede desencadenar las apps mediante planificaciones periódicas o establecer la app para que reaccione ante sucesos como, por ejemplo, cargas de archivos o Kafka.
Después de desplegar la aplicación, puede actualizar la aplicación desplegada y su código referenciado utilizando varias formas, independientemente de cómo haya creado o actualizado previamente la aplicación:
-
Si tienes una imagen de contenedor, según el estándar Open Container Initiative(OCI), entonces sólo necesitas proporcionar una referencia a la imagen, que apunte a la ubicación de tu registro de contenedores cuando despliegues tu aplicación. Puede desplegar la app con una imagen en un registro público o registro privado.
Si ha creado la app utilizando el mandato
app create
y ha especificado la opción--build-source
para crear la imagen de contenedor desde el origen local o de repositorio, y desea cambiar la app para que apunte a una imagen de contenedor diferente, primero debe eliminar la asociación de la compilación de la app. Por ejemplo, ejecuteibmcloud ce application update -n APP_NAME --build-clear
. Después de eliminar la asociación de la compilación de la app, puede actualizar la app 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 desplegar la aplicación 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 Despliegue de la aplicación 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 desplegar la aplicación.
-
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 desplegar la aplicación 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 Despliegue de la aplicación a partir del código fuente local con la CLI. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de desplegar la aplicación.
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 la aplicación. Una vez que la imagen ha madurado, puede actualizar la aplicación desplegada para que haga referencia a la imagen específica que desee. Puede repetir este proceso según sea necesario.
Cuando despliega la aplicación actualizada, se descarga y se despliega la última versión de la imagen de contenedor referenciada, a menos que se especifique una etiqueta para la imagen. Si se especifica una etiqueta para la imagen, se utiliza la imagen etiquetada para el despliegue.
¿Desea ver más ejemplos de código? Consulte los ejemplos de para IBM Cloud Code Engine GitHub.