Cache Docker Images Whether Built or Pulled
Cache Docker images whether built or pulled by saving them on cache misses and loading them on cache hits. Filter out Docker images that are present before the action is run, notably those pre-cached by GitHub actions; only save Docker images pulled or built in the same job after the action is run. Note that this action does not perform Docker layer caching. The official Docker build push action performs Docker layer caching for built images but does not cache pulled images.
-
Add the following step before your first use of Docker:
- name: Cache Docker images. uses: ScribeMD/docker-cache@0.5.0 with: key: docker-${{ runner.os }}-${{ hashFiles(paths) }}
-
Change the key to some fast function of your Docker image versions, for example,
docker-${{ runner.os }}-${{ hashFiles('docker-compose.yaml') }}
, ifdocker-compose.yaml
specifies the Docker images you pull. Refer to the official GitHub cache action for guidance on creating a cache key.
The explicit cache key to ferry to the
official GitHub cache action.
restore-keys
are not supported, because partial cache restoration leads to a
“snowball” effect.
default: false
If true
, disable saving cache upon cache miss.
The ferried output of the
official GitHub cache action.
True on cache hit (even if the subsequent
docker load
failed) and false on cache miss. See also
skipping steps based on cache-hit.
- Tested on
ubuntu-22.04
andwindows-2022
- Probably works on
ubuntu-18.04
andubuntu-20.04
- May work on future versions of Linux and Windows
No permissions are required.
Please refer to CHANGELOG.md
.