Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
¿Por qué instalamos dependencias durante el comando final "CMD" de Docker, en desarrollo?

Estoy trabajando en un libro sobre el arranque de microservicios, y el autor proporciona el siguiente archivo acoplable, que está destinado a ser utilizado en el desarrollo.**

 FROM node:12.18.1-alpine WORKDIR /usr/src/app COPY package*.json . CMD npm config set cache-min 999999 && \ npm install && \ npm run start:dev

El comando CMD aquí es obviamente algo inusual. La justificación proporcionada es la siguiente: al realizar la instalación de npm install cuando se inicia el contenedor, podemos "hacer uso del almacenamiento en caché de npm para que sea mucho más rápido instalarlo al inicio del contenedor que si lo instalamos durante el proceso de compilación".

¿Qué está pasando detrás de escena aquí con el comando CMD ? ¿En qué se diferencia esto de tener un comando RUN que instala las dependencias antes del comando CMD ? Y relacionado, ¿por qué necesitamos establecer una política cache-min ?

**Los archivos de origen no se copian aquí porque están incluidos en un volumen montado.

EDITAR: aquí también está el archivo de composición de la ventana acoplable

 version: '3' services: history: image: history build: context: ./history dockerfile: Dockerfile-dev container_name: history volumes: - /tmp/history/npm-cache:/root/.npm:z - ./history/src:/usr/src/app/src/:z ports: - '4002:80' environment: - PORT=80 - NODE_ENV=development restart: 'no' ...
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando desarrolla, a menudo cambia los paquetes que se incluyen en el proyecto. Al hacerlo de esta manera, no necesita crear una nueva imagen cuando lo hace. Simplemente puede detener e iniciar el contenedor e instalará los nuevos paquetes.

Sin embargo, estoy un poco sorprendido por la copia de package*.json. Supongo que eso se pasaría a la imagen usando un volumen como dices que es el código fuente. Todavía se puede hacer así y tal vez lo sea. Necesitaríamos ver el comando de docker run para saber si lo es.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda