Disable cache for specific RUN commands

前端 未结 7 535
暗喜
暗喜 2020-11-30 05:16

I have a few RUN commands in my Dockerfile that I would like to run with -no-cache each time I build a Docker image.

I understand the

7条回答
  •  一个人的身影
    2020-11-30 05:49

    There's always an option to insert some meaningless and cheap-to-run command before the region you want to disable cache for.

    As proposed in this issue comment, one can add a build argument block (name can be arbitrary):

    ARG CACHEBUST=1 
    

    before such region, and modify its value each run by adding --build-arg CACHEBUST=$(date +%s) as a docker build argument (value can also be arbitrary, here it is current datetime, to ensure its uniqueness across runs).

    This will, of course, disable cache for all following blocks too, as hash sum of the intermediate image will be different, which makes truly selective cache disabling a non-trivial problem, taking into account how docker currently works.

提交回复
热议问题