Voltar aos posts

Docker Caching: Otimizando Seus Builds

Publicado em 20/01/2022

Post bem simples e objetivo para começar bem o ano novo e sem a dor de cabeça do CI & CD toda vez ter que instalar as dependências da sua aplicação a cada deploy.

Se seu Dockerfile se parece com algo desse tipo:

FROM node:8
COPY . /app
RUN npm install --production
EXPOSE 3000
CMD ["node", "app/index.js"]

Altere para:

FROM node:8
COPY package.json /app/package.json
RUN cd /app; npm install --production
COPY . /app
EXPOSE 3000
CMD ["node", "app/index.js"]

A diferença está aqui:

De

COPY . /app
RUN npm install --production

Para

COPY package.json /app/package.json
RUN cd /app; npm install --production
COPY . /app

O comando acima fará com que as dependências da sua aplicação sejam armazenadas e versionadas. O Docker verificará se houve alguma nova alteração no package.json. Caso não ocorra nenhuma alteração, o build acontece normalmente sem a necessidade de instalar novamente as dependências fazendo com que o deploy seja natualmente mais rápido.

Dicas de leitura