es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Lerna monorepo publica imágenes de Docker en lugar de paquetes npm.

Actualmente estoy trasladando mi backend de un polyrepo o multirepo a un monorepo.
Ya he movido con éxito los paquetes compartidos al monorepo de Lerna, ahora es el momento de los microservicios.
La estructura de mi proyecto es simple:

root
  services
    servicio_escrito_en_node
       Dockerfile
       package.json
    servicio_escrito_en_algo_diferente
       Dockerfile
  packages
     paquete_compartido_1
         package.json
     paquete_compartido_2
         package.json

Básicamente, todo en el directorio packages debe ser publicado en npm, y todo en el directorio services debe ser publicado en el registro de Docker.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    ¡Excelente trabajo al mover exitosamente tus paquetes compartidos al monorepo de Lerna! Ahora, para mover tus microservicios también, puedes seguir estos pasos:

    1. Agrega un Dockerfile y package.json para cada uno de tus microservicios en sus respectivos directorios bajo services.
    2. Modifica el archivo package.json de cada microservicio para incluir un script "build" que construya una imagen Docker del microservicio usando el correspondiente Dockerfile. El script también debe incluir comandos docker push apropiados para publicar la imagen en tu registro Docker.

    3. Modifica los archivos package.json de los paquetes compartidos bajo packages para incluir un campo "publishConfig" que especifique el registro de destino para publicar en npm.

    4. Ejecuta lerna bootstrap para instalar los paquetes compartidos como dependencias de los microservicios.

    5. Usa lerna publish para publicar los paquetes compartidos en npm. Este comando solo publicará los paquetes que hayan cambiado desde la última versión y también actualizará los números de versión de las dependencias en los archivos package.json de los microservicios.

    6. Usa el script "build" agregado anteriormente para construir y publicar las imágenes Docker de los microservicios en tu registro Docker.

    Con estos pasos, tus microservicios y paquetes compartidos deberían estar organizados y publicados correctamente en tu monorepo de Lerna. ¡Buena suerte con la migración!

Comments are closed.