Comment puis-je empêcher un Dockerfile l'instruction de la mise en cache?

Dans mon Dockerfile - je utiliser curl ou ADD pour télécharger la dernière version de l'archive, comme:

FROM debian:jessie
...
RUN apt-get install -y curl
...
RUN curl -sL http://example.com/latest/archive.tar.gz --output archive.tar.gz
...
ADD http://example.com/latest/archive2.tar.gz
...

La RUN instruction qui utilise curl ou ADD crée son propre calque de l'image. Qui sera utilisé en tant que cache pour les exécutions futures de docker build.

Question: Comment puis-je désactiver la mise en cache pour les instructions?

Il serait bien d'obtenir quelque chose comme l'invalidation du cache de d'y travailler. E. g. en utilisant HTTP ETags ou en interrogeant le dernière modification champ d'en-tête. Que donnerait la possibilité de faire un rapide test basé sur les en-têtes HTTP de décider de la mise en cache couche peut être utilisé ou pas.

Je sais que certains trucs sales pourraient aider par exemple, l'exécution d'un téléchargement d'un script shell dans le RUN déclaration de la place. Son nom de fichier sera modifié avant la docker build est déclenchée par notre système de construction. Et je pourrais en faire HTTP contrôles à l'intérieur de ce script. Mais ensuite, j'ai besoin de stocker de la dernière utilisée ETag ou la dernière modification dans un fichier quelque part. Je me demande s'il y a certains plus propre et natif Docker fonctionnalité que je pourrais utiliser, ici.

Comment la nouvelle solution d'invalider le cache juste pour instruction, comme vous l'a demandé?

OriginalL'auteur h3nrik | 2015-08-03