Il peut⁻être compliqué d’invalider le cache sur certaines étapes d’un Dockerfile. La solution préconisée par Github, à savoir d’utiliser une variable d’environnement ou un argument basé sur timestamp, est difficile à mettre en place avec docker-compose.

J’ai donc imaginé ce workaround (un peu sale, il faut l’admettre), pour pouvoir invalider le cache (et donc rejouer toutes les étapes qui seront en dessous de ces lignes) :

ADD https://www.random.org/strings/?num=1&len=15&digits=on&upperalpha=on&loweralpha=on&unique=on&format=plain&rnd=new cache_busting.html
RUN rm cache_busting.html

Ce workaround fonctionne encore sur la dernière version de Docker, à l’heure où j’écris ces lignes (17.12.1-ce (2018-02-27)).