Implementar Cloud Run para proyectos de Nodejs en Nx Workspace

https://unsplash.com/photos/4RCvKbu_kcY

Nx es un conjunto de herramientas de desarrollo poderosas y extensibles para ayudarlo a diseñar, probar y construir a cualquier escala, integrándose sin problemas con tecnologías y bibliotecas modernas al tiempo que proporciona una CLI robusta, almacenamiento en caché, administración de dependencias y más.

Estoy planeando desarrollar múltiples proyectos de Cloud Run y también quiero aprovechar monorepo para compartir bibliotecas y servicios.

La documentación para esta integración es difícil de encontrar, incluso si intenta buscarla en Google. Por lo tanto, aquí estoy, tratando de que suceda. Este es un paso inicial, hay espacios para mejorar el proceso.

Cree un proyecto de Express Node en Nx

Configurar un espacio de trabajo de Nx

npx create-nx-workspace myworkspace --preset=empty

yarn add -D @nrwl/express
nx generate @nrwl/express:application <express-app>

Estoy usando Cloud Code, que es un complemento que admite el desarrollo y la implementación locales para Cloud Run y ​​Kubernetes.

Preparar la configuración de Dockerfile y Vscode

Estoy usando la siguiente convención de nomenclatura para diferentes proyectos en Nx Workspace.

# Dockerfile.api - for api project
# Use the official lightweight Node.js 14 image.
FROM node:14-slim
# Create and change to the app directory.
WORKDIR /usr/src/app
# Copy application dependency manifests to the container image.
COPY package*.json ./
COPY yarn.lock ./
COPY decorate-angular-cli.js ./
# Install dependencies.
RUN yarn
# Copy local code to the container image.
COPY . ./
# Build the app
RUN yarn build:api --production
# Run the web service on container startup.
CMD ["node", "./dist/apps/api/main.js"]

{
  "configurations": [
    {
      "name": "Cloud Run: Run/Debug Locally - API",
      "type": "cloudcode.cloudrun",
      "request": "launch",
      "build": {
        "docker": {
          "path": "Dockerfile.api"
        }
      },
      "image": "workspace-name",
      "service": {
        "name": "workspace-name",
        "containerPort": 8080,
        "resources": {
          "limits": {
            "memory": "256Mi"
          }
        }
      },
      "target": {
        "minikube": {}
      },
      "watch": true
    },
    {
      "name": "Cloud Run: Run/Debug Locally - Web",
      ......
    }
  ]
}

Opciones locales
Implementar opciones

Después de eso, tiene todo listo para el desarrollo de Cloud Run localmente en Nx Workspace.

Cloud Run se está ejecutando en localhost: 8080

Este es mi experimento, si tiene mejores opciones, por favor ayude a mejorarlo 🙏

Suggested posts

Potencie su desarrollo de aplicaciones Vue con Nx Monorepo

Inicio correcto de su proyecto Vue: algunos pasos clave para crear una aplicación en Nx Monorepo

Potencie su desarrollo de aplicaciones Vue con Nx Monorepo

Vue 3 continúa ganando terreno en el mundo del desarrollo web. Con su enfoque moderno de la reactividad de los datos, la composición de los comportamientos de los componentes y muchas otras características, Vue 3 debería tener este tipo de atención.

Preguntas de la entrevista de Node JS (de básico a avanzado) Parte 5

Preguntas de la entrevista de Node JS (de básico a avanzado) Parte 5

Hoy continúo con la serie de preguntas de entrevistas de Node JS. Esta serie se basará en 5 partes que cubren las preguntas importantes que se hacen en las entrevistas desde Básico hasta Avanzado Antes de comenzar.

Related posts

La revolución del lugar de trabajo: los mejores expertos hablan sobre el trabajo híbrido y remoto

La revolución del lugar de trabajo: los mejores expertos hablan sobre el trabajo híbrido y remoto

En el panorama empresarial en rápida evolución actual, el concepto de trabajo híbrido y remoto ha ganado un impulso sin precedentes. A medida que las empresas continúan adaptándose a las necesidades y expectativas cambiantes de sus empleados, expertos de varios campos se han reunido para analizar los beneficios, los desafíos y el futuro de esta forma transformadora de trabajar.

"La fosa de las Marianas revelada: revelando las aterradoras verdades ocultas del abismo"

"La fosa de las Marianas revelada: revelando las aterradoras verdades ocultas del abismo"

Introducción: Bienvenidos, valientes lectores, a un viaje que nos llevará a las profundidades más oscuras de nuestro planeta. En este blog, profundizamos en el enigmático mundo de la Fosa de las Marianas, descubriendo sus secretos ocultos y descubriendo las verdades escalofriantes que se encuentran debajo de su superficie.

Revista abierta

Revista abierta

Diario abierto: una imagen al día. Siempre me han fascinado las historias.

Repensar los medios: las cinco verdades de McChesney y el futuro de las comunicaciones

En el mundo hiperconectado de hoy, los sistemas de medios juegan un papel fundamental en la formación de la opinión pública y, en consecuencia, en la toma de decisiones democrática. En su profundo análisis de la economía política de la comunicación, el académico Robert McChesney desafía la sabiduría convencional y presenta lo que él llama las “cinco verdades” sobre los medios.