Construir uma imagem para criar o cache de construção
Nesta etapa, construiremos uma imagem Docker simples para criar algum cache de construção. O cache de construção do Docker é um mecanismo que acelera o processo de construção, reutilizando camadas de construções anteriores. Quando você constrói uma imagem Docker, cada instrução no Dockerfile cria uma camada. Se uma instrução não foi alterada desde a última construção, o Docker pode reutilizar a camada existente em vez de reconstruí-la.
Primeiro, vamos criar um diretório para nosso projeto e navegar até ele.
mkdir ~/project/docker-cache-demo
cd ~/project/docker-cache-demo
Agora, criaremos um Dockerfile simples. Este Dockerfile copiará um arquivo para a imagem e, em seguida, executará um comando.
nano Dockerfile
Adicione o seguinte conteúdo ao Dockerfile:
FROM ubuntu:latest
COPY . /app
RUN echo "Hello, Docker Cache!" > /app/message.txt
CMD ["cat", "/app/message.txt"]
Salve e feche o arquivo.
Em seguida, vamos criar um arquivo simples que copiaremos para a imagem.
nano message.txt
Adicione algum conteúdo a message.txt:
This is a test message.
Salve e feche o arquivo.
Agora, construiremos a imagem Docker. Marcaremos a imagem como cache-demo.
docker build -t cache-demo .
Você verá uma saída indicando que o Docker está construindo a imagem passo a passo. Cada etapa corresponde a uma instrução no Dockerfile. O Docker fará o download da imagem ubuntu:latest se ela ainda não estiver presente, copiará o arquivo message.txt e, em seguida, executará o comando echo.
Após a conclusão da construção, você pode verificar se a imagem foi criada listando as imagens disponíveis.
docker images
Você deve ver cache-demo na lista de imagens.
Agora, vamos construir a imagem novamente sem fazer nenhuma alteração no Dockerfile ou em message.txt.
docker build -t cache-demo .
Desta vez, você notará que o processo de construção é muito mais rápido. O Docker reutiliza as camadas existentes da construção anterior porque as instruções no Dockerfile e o conteúdo de message.txt não foram alterados. A saída mostrará "Using cache" (Usando cache) para a maioria das etapas. Isso demonstra como o cache de construção do Docker funciona para acelerar as construções subsequentes.