IBM Cloud Docs
Despliegue de la aplicación a partir del código fuente del repositorio

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.

  1. Abra la consola de Code Engine.
  2. Seleccione Vamos.
  3. Seleccione Aplicación.
  4. Escriba un nombre para la aplicación. Utilice un nombre para la aplicación que sea exclusivo dentro del proyecto.
  5. 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.
  6. Seleccione Código fuente.
  7. Pulse Especificar detalles de compilación.
  8. 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, seleccione None 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. Pulse Listo.
  14. 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.
  15. Pulse Crear.
  16. 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

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.

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

El nombre de la aplicació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 63 caracteres o menos y puede contener letras, números y guiones (-).
--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, 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, ejecute ibmcloud 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.