docker/build-push-action@v2 のキャッシュ方法は cache.md を読むと参考になる
※本記事は docker/build-push-action@v2.7時点の情報を元に記述しています。
結論、cache.md とは次のことです。
build-push-action/cache.md at v2.7.0 · docker/build-push-action · GitHub
ほか、背景や調べたことをつらつらメモ書きしておきます。
背景
副業で Ruby on Rails の CI 環境を作る上で次の記事が参考になりました。
しかし残念なことに、buildx/BuildKitランナーをVMのコンテキストでセットアップする(つまりDockerのキャッシュがエクスポート可能になり、正しくキャッシュできる)驚くほどシンプルな方法が存在するにもかかわらず、このドキュメントにはそのことが記載されていないのです。
以下は、docker/build-push-actionリポジトリから引用した公式なサンプルです。
前述にて、Local cacheを利用したワークフローのサンプルおよび、docker/build-push-action
を利用したキャッシュ方法が記述されたリンクが紹介されています。
build-push-action/cache.md at v2.7.0 · docker/build-push-action · GitHub
Ruby on Rails に限らず、GitHub Actions 上で Docker build する機会がある場合、前述のサンプルが大いに参考になると思います。
cache-from, cache-to などの記述は Buildx のドキュメントを参考にする
GitHub Action to build and push Docker images with Buildx with full support of the features provided by Moby BuildKit builder toolkit. This includes multi-platform build, secrets, remote cache, etc. and different builder deployment/namespacing options.
と About 記載されている通り docker/build-push-action@v2 は Buildx を利用して Build, Push, Cache などの Docker に関する操作が行われています。
Buildx とは docker build
を強化するプラグイン。前述の記事内などで記述されている cache-from
/ cache-to
など、キャッシュの読み書き先を指定など、色々できるみたいです。
- Docker Buildx | Docker Documentation
- イメージのビルド高速化機構 Docker BuildKit、BuildX を理解していなかったので調べてみました | ゲンゾウ用ポストイット