소스 검색

Merge pull request #8461 from SvenDowideit/copy-specific-files-from-context

Add a best practice to reduce cache invalidations
Fred Lifton 10 년 전
부모
커밋
950f271ee4
1개의 변경된 파일15개의 추가작업 그리고 1개의 파일을 삭제
  1. 15 1
      docs/sources/articles/dockerfile_best-practices.md

+ 15 - 1
docs/sources/articles/dockerfile_best-practices.md

@@ -261,9 +261,23 @@ some features (like local-only tar extraction and remote URL support) that are
 not immediately obvious. Consequently, the best use for `ADD` is local tar file
 auto-extraction into the image, as in `ADD rootfs.tar.xz /`.
 
+If you have multiple `Dockerfile` steps that use different files from your
+context, `COPY` them individually, rather than all at once. This will ensure that
+each step's build cache is only invalidated (forcing the step to be re-run) if the
+specifically required files change.
+
+For example:
+
+    COPY requirements.txt /tmp/
+    RUN pip install /tmp/requirements.txt
+    COPY . /tmp/
+
+Results in fewer cache invalidations for the `RUN` step, than if you put the
+`COPY . /tmp/` before it.
+
 Because image size matters, using `ADD` to fetch packages from remote URLs is
 strongly discouraged; you should use `curl` or `wget` instead. That way you can
-delete the files you no longer need after they’ve been extracted and you won't
+delete the files you no longer need after they've been extracted and you won't
 have to add another layer in your image. For example, you should avoid doing
 things like: