# Workaround Docker cache issue with docker-cache-shim

**URL:** <https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591>\
**Category:** Tips, Tricks, and Hacks\
**Tags:** docker\
**Created:** [August 9, 2016, 3:52am UTC](https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591 "2016-08-09T03:52:52Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![kimh](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/kimh/32/19_2.png) [@kimh](https://discuss.circleci.com/u/kimh)\
**Post date:** [August 9, 2016, 3:52am UTC](https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591/1 "2016-08-09T03:52:52Z")

</div>

Currently, CircleCI doesn’t support Docker cache very well. There is some [workaround](https://circleci.com/docs/1.0/docker/#caching-docker-layers) but sometimes it’s hard to use correctly.

Slightly better and easier approach is pushing your image to Docker Hub and pull the image before running docker build. In this way, you are using Docker Hub as cache store for your image.

I made [docker-cache-shim](https://github.com/kimh/docker-cache-shim) to make this workflow easier for me. You can see it in action [https://circleci.com/gh/kimh/docker-cache-shim/66#config](https://circleci.com/gh/kimh/docker-cache-shim/66#config)

**Disclaimer**  
I work in CircleCI but I wrote this post and docker-cache-shim personally, so please make Github issues when you have questions/problems, but not in CircleCI support ticket. Thanks!

---

<div class="post-metadata">

**Author:** ![smoll](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/smoll/32/9638_2.png) [@smoll](https://discuss.circleci.com/u/smoll)\
**Post date:** [August 14, 2016, 3:21am UTC](https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591/2 "2016-08-14T03:21:23Z")

</div>

Thanks for creating this. I haven’t looked too in depth at the code, but would it be straightforward and make sense to add support for other registries (AWS ECR or [quay.io](http://quay.io) for example)?

---

<div class="post-metadata">

**Author:** ![kimh](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/kimh/32/19_2.png) [@kimh](https://discuss.circleci.com/u/kimh)\
**Post date:** [August 15, 2016, 12:29am UTC](https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591/3 "2016-08-15T00:29:38Z")

</div>

You should be able to use other repositories for caching. You just need to change the image path to pull/push.

```auto
docker-cache-shim pull quay.io/username/reponame

docker-cache-shim push quay.io/username/reponame:tag

```

---

<div class="post-metadata">

**Author:** ![nritholtz](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/nritholtz/32/13719_2.png) [@nritholtz](https://discuss.circleci.com/u/nritholtz)\
**Post date:** [August 18, 2016, 4:16pm UTC](https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591/4 "2016-08-18T16:16:10Z")

</div>

Just to confirm, will this work for Docker 1.10 as well?

---

<div class="post-metadata">

**Author:** ![kimh](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/kimh/32/19_2.png) [@kimh](https://discuss.circleci.com/u/kimh)\
**Post date:** [August 19, 2016, 1:46am UTC](https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591/5 "2016-08-19T01:46:45Z")

</div>

Unfortunately not ☹ Both load/save and pulling cache workarounds are broken in Docker 1.10.

---

<div class="post-metadata">

**Author:** ![caitlin615](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/caitlin615/32/2245_2.png) [@caitlin615](https://discuss.circleci.com/u/caitlin615)\
**Post date:** [November 16, 2016, 5:44pm UTC](https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591/7 "2016-11-16T17:44:58Z")

</div>

Wanted to share what I’m doing to cache docker images. I noticed that when I implemented [CircleCI’s docker caching suggestion](https://circleci.com/docs/1.0/docker/#caching-docker-layers), the build was still pulling from the docker hub when running `docker pull`, even after the image was loaded from `docker load`.

This works very well for loading docker images from cache:

```auto
dependencies:
  cache_directories:
    - "~/docker"
  override:
    - >-
      if [[-e ~/docker/go.1.7.3.tar]]; then
        echo "Loading golang docker image from cache"
        docker load -i ~/docker/go.1.7.3.tar
      else
        echo "Pulling golang docker image from Docker Hub"
        docker pull golang:1.7.3
        mkdir -p ~/docker; docker save -o ~/docker/go.1.7.3.tar golang:1.7.3
      fi

```

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/circleci/original/3X/5/1/511608acda8e85906e15909b57bd0a46c1dbe291.png) [@system](https://discuss.circleci.com/u/system)\
**Post date:** [June 18, 2018, 11:42am UTC](https://discuss.circleci.com/t/workaround-docker-cache-issue-with-docker-cache-shim/5591/8 "2018-06-18T11:42:07Z")

</div>

Closed on June 18, 2018, 11:42am UTC


