Despliegue de la aplicación desde el código fuente local con la CLI
Puede desplegar la aplicación directamente desde el código fuente en la estación de trabajo local con la CLI de IBM Cloud® Code Engine. Utilice el mandato app create para compilar una imagen desde el código fuente
local y despliegue la aplicación para que haga referencia a esta imagen compilada.
Cuando envía una compilación que extrae código de un directorio local, el código fuente se empaqueta en un archivo de archivado. Code Engine carga automáticamente la imagen en un espacio de nombres de IBM Cloud® Container Registry en su cuenta
y, a continuación, crea y despliega la aplicación para hacer referencia a esta imagen compilada. Tenga en cuenta que solo puede tener IBM Cloud Container Registry como destino para las compilaciones locales. La imagen de origen se crea en el
mismo espacio de nombres que la imagen de compilación. Para este caso de ejemplo, solo debe proporcionar un nombre para la aplicación y la vía de acceso del código fuente local. Para ver una lista completa de opciones, consulte el mandato
ibmcloud ce app create.
Para obtener información sobre los permisos necesarios para acceder a los registros de imágenes, consulte Configuración de autorizaciones para registros de imágenes.
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 GitHub.gitignore.
Se requiere IBM Cloud® Container Registry para este caso de ejemplo.
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Cree y trabaje con un proyecto.
Antes de trabajar con el código fuente local, asegúrese de que el código fuente esté en una ubicación accesible en la estación de trabajo local.
Este ejemplo utiliza los ejemplos de https://github.com/IBM/CodeEngine; en concreto, el ejemplo de helloworld.
-
Descargue el código fuente de ejemplo de
https://github.com/IBM/CodeEngineen la estación de trabajo local con el mandato siguiente.git clone https://github.com/IBM/CodeEngine -
Vaya al directorio
CodeEngine\helloworld. -
En el directorio
CodeEngine\helloworld, cree y despliegue la aplicaciónmyapp-local, que utiliza una imagen compilada a partir del código fuente deCodeEngine\helloworlden la estación de trabajo local. Este mandato compila y envía automáticamente la imagen a un espacio de nombres Container Registry en su cuenta. Si no tiene un espacio de nombres Container Registry existente, Code Engine crea automáticamente uno.ibmcloud ce application create --name myapp-local --build-source ..indica que el código fuente de compilación se encuentra en el directorio de trabajo actual.Salida de ejemplo
Creating application 'myapp-local'... Packaging files to upload from source path '.'... Submitting build run 'myapp-local-run-220414-171750199'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local:220414-2117-rdaga'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myapp-local-run-220414-171750199' to check the build run status. Waiting for application 'myapp-local' to become ready. Configuration 'myapp-local' 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-local' to check the application status. OK https://myapp-local.glxo4kabcde.us-south.codeengine.appdomain.cloudObserve la salida del
application createComando proporciona información sobre la progresión de la ejecución de la compilación antes de crear e implementar la aplicación.En este ejemplo, la imagen compilada se carga en el espacio de nombres
ce--abcde-glxo4kabcdeen Container Registry.En la tabla siguiente se resumen las opciones que se utilizan con el mandato
app createen este ejemplo. Para obtener más información sobre el mandato y sus opciones, consulte el mandatoibmcloud ce app create.Descripción del mandato Opción Descripción --nameEl 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-sourceLa vía de acceso al código fuente local. -
Utilice el mandato
application getpara visualizar información sobre la aplicación, incluida la información sobre la compilación.ibmcloud ce application get --name myapp-localSalida de ejemplo
[...] Name: myapp-local 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-local.Sta.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp-local.glxo4kabcde.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp-local/configuration Status Summary: Application deployed successfully Environment Variables: Type Name Value Literal CE_API_BASE_URL https://api.private.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--abcde-glxo4kabcde/app-myapp-local:220414-2010-sqsoj Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Revisions: myapp-local-00001: Age: 23m Latest: true Traffic: 100% Image: private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local: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-local-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-local-run-220414-161009244' for details. [...]
Ahora que la aplicación se crea y se despliega a partir del código fuente local, 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.
En lugar de compilar la imagen desde el código fuente local y desplegar la aplicación con un solo mandato, puede elegir compilar primero desde el código fuente local antes de desplegar la aplicación. Consulte Creación de una configuración de compilación que extrae el origen de una estación de trabajo local.
Cuando la app se despliega desde el origen local o desde el código fuente de repositorio desde 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 createy ha especificado la opción--build-sourcepara 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.