ANÚNCIO

~/questoes/devops

Ao usar uma imagem base node:18 no Dockerfile, o que já vem pré-instalado?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Para fixar

O que vem pré-instalado na imagem Docker node:18

Conceito central

A imagem base node:18 é um ponto de partida para containerizar aplicações Node.js. Ela já inclui o Node.js e o npm instalados, mas não contém as dependências específicas do seu projeto, que precisam ser instaladas separadamente durante a construção da imagem.

Por que essa resposta faz sentido

A imagem node:18 vem com Node.js e npm prontos para usar. Porém, as bibliotecas e pacotes listados no seu package.json não estão inclusos. Você precisa executar npm install dentro do container para instalá-las, geralmente adicionando um comando RUN no Dockerfile.

Armadilhas comuns

  • Achar que o npm não vem instalado na imagem node:18 e tentar instalar manualmente no Dockerfile
  • Esperar que todas as dependências do package.json venham prontas, sem perceber que o npm install é necessário
  • Confundir a imagem base (que é um ambiente vazio de dependências) com a imagem final do seu projeto (após npm install)

Entenda as alternativas

A

Embora pareça minimalista, a imagem node:18 não vem completamente nua. O npm já está incluído junto com o Node.js, tornando esta alternativa imprecisa.

B

Express e outros frameworks não vêm pré-instalados na imagem base. Frameworks são dependências específicas do projeto e só existem se você os listar no package.json e executar npm install.

C

As dependências do package.json não vêm instaladas na imagem base. Elas precisam ser instaladas durante a construção da imagem, o que garante que você tenha controle sobre quais versões serão usadas.

D

Esta é a resposta correta. A imagem node:18 oferece Node.js e npm funcionando, que são os alicerces necessários. As dependências específicas do seu projeto devem ser instaladas com npm install.

Dica prática: No seu Dockerfile, após copiar package.json e package-lock.json, sempre adicione a linha RUN npm install. Isso garante que todas as dependências sejam instaladas durante a construção, deixando seu container completo e pronto para rodar.

Revise pensando: Se você quiser usar Express na sua API, em qual momento ele será instalado: antes de usar a imagem node:18 ou depois de executar npm install dentro do container?