RUN –mount=type=cache (正式な名称はよくわからない。便宜上Mount cacheと呼びます) DockerfileのRUNに追加する RUN --mount=type=cache,target=/root/.cache/go-build go build … RUN中にディレクトリ指定でマウントしたボリュームを次のビルドで使い回す パッケージやビルドキャッシュを使い回せると次のビルドが早くなる
おまけ:CircleCI上のbuildxのセットアップ 実はRegistry cacheを使うには以下のコマンドでbuildxの設定が必要 docker buildx create --use ローカルでは問題ないがCircleCIだと以下のようなエラーになった error: could not create a builder instance with TLS data loaded from environment. Please use `docker context create ` to create a context for current environment and then create a builder instance with `docker buildx create ` ワークアラウンドとして以下のようにセットアップすれば動く docker context create circleci docker buildx create --use circleci 参考 https://support.circleci.com/hc/en-us/articles/360058095471-How-To-Use-Docker-Buildx-in-Remote-Docker- http://www.er.crichardson.com/post/microservices/2022/01/18/build-multi-arch-docker-images-circleci.html
参考 RUN —mount=type=cacheの公式ドキュメント(buildkit) buildkitのREADME(Cacheの項目) docker buildx buildの公式ドキュメント How To Use Docker Buildx in Remote Docker?(CircleCI Support Center) BuildKitでイメージをビルドする(buildkitとbuildxの解説) Dockerイメージのビルドで使うキャッシュの種類 - レイヤーキャッシュ、BuildKit の--mount=type=cache