En este artículo, lo guiaría a través de la implementación de aplicaciones en contenedores sin servidor en Cloud Run , usando GitLab CI y Cloud Build .
Cloud Run es una plataforma informática administrada que le permite ejecutar contenedores sin servidor sin estado que se escalan automáticamente.
Cloud Build es un servicio que ejecuta sus compilaciones en la infraestructura de Google Cloud Platform.
El servicio GitLab CI es una parte de GitLab que construye y prueba el software cada vez que el desarrollador empuja el código al repositorio de aplicaciones.
Prerrequisitos
- Cree un proyecto de Google Cloud Platform (GCP) o use uno existente.
- Crea un repositorio de GitLab .
- Habilite la API de Cloud Run .
- Habilite la API Cloud Build .
- Clone los códigos de muestra o configure sus propios códigos con un Dockerfile .
Crear una cuenta de servicio para Google Cloud Build
- En Google Cloud, navegue a través de Cloud Build> Configuración.
- En Permisos de cuenta de servicio, asegúrese de que Cloud Run y las cuentas de servicio estén HABILITADAS , esto le permite implementar en Cloud Run.
- Dado que le he dado a Cloud Build permisos suficientes, puedo crear una cuenta de servicio Cloud Build en IAM y Admin> Cuentas de servicio.
Crearé una cuenta de servicio (NAME @ PROJECT.iam.gserviceaccount.com) y le daré el Agente de Cloud Build Service.
En la página de la cuenta de servicio creada, haga clic en Agregar clave> JSON .
Configure GitLab CI para usar Cuentas de servicio
En el repositorio de GitLab, navegue a través de Configuración> CI / CD> Variables.
Como se vio anteriormente, creé una variable para GCP_PROJECT_ID cuyo valor es el ID de proyecto de Google Cloud y GCP_SERVICE_KEY cuyo valor es el contenido de la cuenta de servicio JSON creada anteriormente.
Despliegue continuo a Cloud Run
Con solo unos pocos pasos restantes, mi aplicación se implementaría continuamente en Cloud Run directamente desde nuestro repositorio de GitLab.
Mi aplicación también tiene un Dockerfile que está configurado para ejecutarse en el puerto 8080 (el puerto predeterminado para Cloud Run).
Finalmente, creé un archivo cloudbuild.yaml que contiene los comandos para construir e implementar Cloud Build y el archivo .gitlab-ci.yml que activa los procesos de implementación cuando se empuja el código.
Aquí hay una vista previa de mi archivo Cloud Build CI:
Aquí hay una vista previa de mi archivo GitLab CI:
Recursos adicionales en Cloud Build
- Documentación de compilación en la nube
- Documentación de ejecución en la nube
- Documentación CI de GitLab
Implementar en Cloud Run usando GitLab CI se publicó originalmente en Google Cloud - Community on Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.