Need help with action-docker-layer-caching?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

satackey
140 Stars 13 Forks MIT License 319 Commits 15 Opened issues

Description

🐳 Enable Docker layer caching in GitHub Actions

Services available

!
?

Need anything else?

Contributors list

# 38,567
appcent...
vala
test-fr...
assert
4 commits
# 629,702
C++
notepad...
notepad...
C
1 commit

Docker Layer Caching in GitHub Actions Readme Test status is unavailable CI status is unavailable

Enable Docker Layer Caching by adding a single line in GitHub Actions. This GitHub Action speeds up the building of docker images in your GitHub Actions workflow.

You can run

docker build
and
docker-compose build
in your GitHub Actions workflow using the cache with no special configuration, and it also supports multi-stage builds.

This GitHub Action uses the docker save / docker load command and the @actions/cache library.

⚠️ Deprecation Notice for
v0.0.4
and older
⚠️

The author had not considered a large number of layers to be cached, so those versions process all layers in parallel. (#12)
Please update to version

v0.0.5
with limited concurrency to avoid overloading the cache service.

Example workflows

Docker Compose

name: CI

on: push

jobs: build: runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]

# Pull the latest image to build, and avoid caching pull-only images.
# (docker pull is faster than caching in most cases.)
- run: docker-compose pull

# In this step, this action saves a list of existing images,
# the cache is created without them in the post run.
# It also restores the cache if it exists.
- uses: satackey/[email protected]
  # Ignore the failure of a step and avoid terminating the job.
  continue-on-error: true

- run: docker-compose up --build

# Finally, "Post Run satackey/[email protected]",
# which is the process of saving the cache, will be executed.

docker build

name: CI

on: push

jobs: build: runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]

# In this step, this action saves a list of existing images,
# the cache is created without them in the post run.
# It also restores the cache if it exists.
- uses: satackey/[email protected]
  # Ignore the failure of a step and avoid terminating the job.
  continue-on-error: true

- name: Build the Docker image
  run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)

# Finally, "Post Run satackey/[email protected]",
# which is the process of saving the cache, will be executed.

Inputs

See action.yml for details.

By default, the cache is separated by the workflow name. You can also set the cache key manually, like the official actions/cache action.

    - uses: satackey/[email protected]
      # Ignore the failure of a step and avoid terminating the job.
      continue-on-error: true
      with:
        key: foo-docker-cache-{hash}
        restore-keys: |
          foo-docker-cache-

Note: You must include

{hash}
in the
key
input.
(

{hash}
is replaced by the hash value of the docker image when the action is executed.)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.