モヒカンメモ

髪色が定期的に変わることに定評のある(比較的)若者Webエンジニアの備忘録

CircleCI: docker_layer_cachingを有効にしてdocker buildでキャッシュを効かせる

f:id:pinkumohikan:20180528235406p:plain

CircleCIでdocker buildする際、初期状態ではbuild cacheが無効になっている。documentを漁っていたら、オプションでbuild cacheを有効にできるようだったので試してみた。

By default, the Remote Docker Environment doesn’t provide layer caching, but you can enable this feature with a special option

circleci.com

設定方法

Remote Dockerの場合

- setup_remote_docker:
    docker_layer_caching: true

see: https://circleci.com/docs/2.0/docker-layer-caching/#docker-layer-caching-in-remote-docker

Machine Executorの場合

machine:
  docker_layer_caching: true

see: https://circleci.com/docs/2.0/docker-layer-caching/#docker-layer-caching-in-machine-executor

実行時間の変化

Engine: Machine Executor

before

f:id:pinkumohikan:20180528232537p:plain

after

f:id:pinkumohikan:20180528232553p:plain

2分以上 早くなったΣ

build cacheを使いたくないときは、 --no-cache オプションをつけてdocker buildすればキャッシュを使わずにbuildしてくれる