Uso inteligente das camadas

Laboratório

Dockerfile:

# imagem base
FROM node:22.7.0-alpine3.20
    
# diretorio de trabalho
WORKDIR /app

# copiar a aplicacao
COPY . .

# instalar as dependencias
RUN npm install

# execucao do comando para iniciar a aplicacao
ENTRYPOINT [ "node", "server.js" ]

Destaque para:

# copiar a aplicacao
COPY . .

# instalar as dependencias
RUN npm install

Qualquer alteração na aplicação exigirá uma nova cópia e a execução do npm install sem utilizar o cache.

Todas as definições da aplicação estão definidas no package.json

Para evitar a nova cópia e a execução do npm install faz-se necessário um ajuste no Dockerfile:

Dockerfile:

Com isso, toda a alteração do código da aplicação não exigirá a cópia dos arquivos com as definições das dependências e sua instalação.

A alteração do código ocorre com mais frequência do que as dependências da aplicação.

Alterar o código da aplicação:

Destaque para o cache da cópia e instalação das dependências, e o não cache da aplicação:

Alterar a versão de uma dependência:

Destaque para a cópia e a instalação das dependências sem cache:

Last updated