Tempo de Leitura
9
min
Guia de CI/CD no Git para times pequenos: performance, cache e runners
Quando um pipeline “demora”, muitas vezes o culpado é um docker build repetindo trabalho.
O objetivo deste post é você sair com um plano claro para:
Este post faz parte da série:
O cache de layers funciona por instrução do Dockerfile.
Se você copia o repositório inteiro antes de instalar dependências, qualquer mudança invalida tudo.
Padrão recomendado:
Exemplo (Node):
FROM node:20 AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run buildLayer caching é reaproveitar resultados de passos anteriores do Docker build.
No CI, você só reaproveita layers de forma consistente quando:
A ideia é simples:
--cache-to publica cache no registry--cache-from puxa cache do registry na próxima execuçãoExemplo conceitual com BuildKit/buildx:
docker buildx build --cache-from=type=registry,ref=registry.exemplo.com/app:buildcache --cache-to=type=registry,ref=registry.exemplo.com/app:buildcache,mode=max -t registry.exemplo.com/app:${GIT_SHA} .Se você tem runner dedicado (e ele não é efêmero), o daemon Docker pode manter layers localmente.
Vantagens:
Riscos:
Se você constrói images para mais de uma arquitetura:
Boas práticas: