Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
Cómo manejar node_modules con docker-compose en un proyecto monorepo

Estoy ejecutando un proyecto monorepo de Node.js usando espacios de trabajo de hilo. La estructura del archivo se ve así:

 workspace_root node_modules package.json apps appA node_modules package.json appB node_modules package.json libs libA dist node_modules package.json

Todas las aplicaciones son independientes, pero todas requieren libA

Estoy ejecutando todas estas aplicaciones con docker-compose. Mi pregunta aquí es cómo manejar correctamente todas las dependencias, ya que no quiero que las carpetas de node_modules se sincronicen con host. Localmente, cuando ejecuto yarn install en la raíz del espacio de trabajo, instala todas las dependencias para todos los proyectos, completando los diferentes node_modules . En docker-compose, idealmente cada aplicación no debería estar al tanto de otras aplicaciones.

Mi enfoque hasta ahora, que funciona pero no es ideal y no es muy escalable.

 version: "3.4" services: # The core is in charge of installing dependencies for ALL services. Each service must for wait the core, and then # just do their job, not having to handle install. appA: image: node:14-alpine volumes: # We must load every volumes for install - .:/app # Mount the whole workspace structure - root_node_modules:/app/node_modules - appA_node_modules:/app/apps/appA/node_modules - appB_node_modules:/app/apps/appB/node_modules - libA_node_modules:/app/libs/libA/node_modules working_dir: /app/apps/appA command: [sh, -c, "yarn install && yarn run start"] appB: image: node:14-alpine volumes: # We must load every volumes for install - .:/app # Mount the whole workspace structure - root_node_modules:/app/node_modules - appB_node_modules:/app/apps/appB/node_modules working_dir: /app/apps/appB command: [sh, -c, "/scripts/wait-for-it.sh appA:4001 -- yarn run start"] # And so on for all apps.... volumes: root_node_modules: driver: local appA_node_modules: driver: local appB_node_modules: driver: local libA_node_modules: driver: local

Los principales inconvenientes que veo:

  • El servicio appA es responsable de instalar las dependencias de TODAS las aplicaciones.
  • Tengo que crear un volumen para cada aplicación + uno para los nodos raíz_módulos
  • Todo el proyecto está montado en cada servicio, aunque estoy usando solo una carpeta específica

Me gustaría evitar una compilación para el desarrollo, ya que debe hacerse cada vez que agrega una dependencia, es bastante engorroso y lo está ralentizando.

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda