O Docker possui um cache, o que é ótimo, mas tudo o que vejo na saída "docker build" é:
---> Using cache
ou a saída do comando (o que implica que ele não está usando o cache).
Após uma etapa no meu Dockerfile (uma CÓPIA), ele claramente não usa o cache. Mas tenho certeza de que nada mudou na pasta que está sendo copiada. (É o nosso aplicativo e eu encontro o caso sem cache, mesmo quando implanto duas vezes seguidas, por exemplo.)
Existe alguma maneira de fazer o Docker me dizer o que ele acha que mudou?
Eu sei que o Docker costumava verificar os registros de data e hora para isso, mas isso foi corrigido no Docker 1.8 e eu estou no Docker 1.9.x aqui.
Dockerfile
FROM ubuntu:14.04
MAINTAINER me
COPY /app/ /app/
demonstrará isso. E não vou postar todo o meu código-fonte e infraestrutura.Respostas:
Use a pesquisa binária, com
.dockerignore
.Adicione metade dos seus arquivos
.dockerignore
e construa o contêiner. Se ele usa o cache para aCOPY
etapa, você sabe que os arquivos alterados estão no conjunto que você ignorou, caso contrário, você sabe que está na outra metade. Repita este teste com o conjunto de arquivos que possui a alteração, até que seja apenas um arquivo / pasta.(Prezado preguiçoso: descubra uma maneira de estender o Docker para tornar isso menos doloroso!)
fonte