From a90d1a0f7138c42e07fb3809c2a6665f7a17acff Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Sat, 2 Nov 2019 23:06:21 +0900 Subject: [PATCH] Add docker layer caching example --- examples.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/examples.md b/examples.md index 5a3c93f..d9f36c7 100644 --- a/examples.md +++ b/examples.md @@ -1,6 +1,7 @@ # Examples - [C# - Nuget](#c---nuget) +- [Docker](#docker) - [Elixir - Mix](#elixir---mix) - [Go - Modules](#go---modules) - [Java - Gradle](#java---gradle) @@ -157,3 +158,29 @@ Using [NuGet lock files](https://docs.microsoft.com/nuget/consume-packages/packa restore-keys: | ${{ runner.os }}-pods- ``` + +## Docker + +```yaml +- uses: actions/cache@preview + id: cache + with: + path: docker-cache + key: ${{ runner.os }}-docker-${{ hashFiles('**/Dockerfile') }} + restore-keys: | + ${{ runner.os }}-docker- +- name: Load cached Docker layers + run: | + if [ -d "docker-cache" ]; then + cat docker-cache/x* > my-image.tar + docker load < my-image.tar + rm -fr docker-cache + fi +- name: Build image + if: steps.cache.outputs.cache-hit != 'true' + run: | + docker build --cache-from my-image -t my-image . + docker save my-image > my-image.tar + mkdir docker-cache + split -b 100m my-image.tar docker-cache/x +```