Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

254
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!