/docker-cache

Cache Docker Images Whether Built or Pulled

Primary LanguageTypeScriptMIT LicenseMIT

docker-cache

GitHub Action: Try Me Docker Cache Test Workflow Status Test Coverage: 100% Copy/Paste: 0%

Automated Updates: Renovate Language: TypeScript Runtime: Node.js Test Framework: Jest Package Management: Yarn Package Management: Poetry Git Hooks: pre-commit Commit Style: Conventional Commits Releases: Semantic Versioning Code Style: Prettier Code Style: EditorConfig Editor: Visual Studio Code

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.

Usage

  • 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') }}, if docker-compose.yaml specifies the Docker images you pull. Refer to the official GitHub cache action for guidance on creating a cache key.

Inputs

Required

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.

Optional

read-only

default: false

If true, disable saving cache upon cache miss.

Outputs

cache-hit

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.

Supported Runners

  • Tested on ubuntu-22.04 and windows-2022
  • Probably works on ubuntu-18.04 and ubuntu-20.04
  • May work on future versions of Linux and Windows

Permissions

No permissions are required.

Changelog

Please refer to CHANGELOG.md.