You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Validating expected behavior when using --cache-test and building an image from a cache source that does not have a local parent chain.
Pull image from remote source
cache-test $ docker pull rheinwein/cache-test
Using default tag: latest
latest: Pulling from rheinwein/cache-test
557a0c95bfcd: Pull complete
98a89d507c56: Pull complete
Digest: sha256:b371d0ae80c1002120b20d07266d4afb5d3d5d0660b4324b27268a2bcbcdee7d
Status: Downloaded newer image for rheinwein/cache-test:latest
cache-test $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rheinwein/cache-test latest 5c5adeb44f12 About a minute ago 1.11 MB
Verify that the parent chain is <missing>
cache-test $ docker history rheinwein/cache-test
IMAGE CREATED CREATED BY SIZE COMMENT
5c5adeb44f12 About a minute ago /bin/sh -c touch some-file 0 B
<missing> About a minute ago /bin/sh -c #(nop) ENV BAR=baz 0 B
<missing> About a minute ago /bin/sh -c #(nop) ENV FOO=bar 0 B
<missing> 4 days ago /bin/sh -c #(nop) CMD ["sh"] 0 B
<missing> 4 days ago /bin/sh -c #(nop) ADD file:a02309eb1d0650f... 1.11 MB
...and that we've definitely got layers that should use the cache (they match)
cache-test $ cat Dockerfile
FROM busybox@sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5
ENV FOO=bar
ENV BAR=baz
RUN touch some-file
Build the image with the --cache-from flag referencing the pulled image
cache-test $ docker build --cache-from rheinwein/cache-test -t rheinwein/cache-test .
Sending build context to Docker daemon 2.356 MB
Step 1/4 : FROM busybox@sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5
sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5: Pulling from library/busybox
557a0c95bfcd: Already exists
Digest: sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5
Status: Downloaded newer image for busybox@sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5
---> 8a4698b1752b
Step 2/4 : ENV FOO bar
---> Using cache
---> 299c99f89afd
Step 3/4 : ENV BAR baz
---> Using cache
---> 60f06037a15e
Step 4/4 : RUN touch some-file
---> Using cache
---> 5c5adeb44f12
Successfully built 5c5adeb44f12
cache-test $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rheinwein/cache-test latest 5c5adeb44f12 2 minutes ago 1.11 MB
busybox <none> 8a4698b1752b 4 days ago 1.11 MB
It works! ⭐️
Try the same process, but use a saved/loaded image instead of a pulled image
cache-test $ docker history rheinwein/cache-test
IMAGE CREATED CREATED BY SIZE COMMENT
5c5adeb44f12 3 minutes ago /bin/sh -c touch some-file 0 B
<missing> 3 minutes ago /bin/sh -c #(nop) ENV BAR=baz 0 B
<missing> 3 minutes ago /bin/sh -c #(nop) ENV FOO=bar 0 B
<missing> 4 days ago /bin/sh -c #(nop) CMD ["sh"] 0 B
<missing> 4 days ago /bin/sh -c #(nop) ADD file:a02309eb1d0650f... 1.11 MB
Rebuild with the --cache-from flag
cache-test $ docker build --cache-from rheinwein/cache-test -t rheinwein/cache-test .
Sending build context to Docker daemon 3.683 MB
Step 1/4 : FROM busybox@sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5
sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5: Pulling from library/busybox
557a0c95bfcd: Already exists
Digest: sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5
Status: Downloaded newer image for busybox@sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5
---> 8a4698b1752b
Step 2/4 : ENV FOO bar
---> Using cache
---> 299c99f89afd
Step 3/4 : ENV BAR baz
---> Using cache
---> 60f06037a15e
Step 4/4 : RUN touch some-file
---> Using cache
---> 5c5adeb44f12
Successfully built 5c5adeb44f12