macのDockerが遅い。cachedやdelegatedでも遅い。


問題

VSCodeのdevcontainerを使ったPHPプロジェクトで動作がどうやっても遅かったのですが、最終的にはContainer Volumeを使って高速に動作するようになりました。
マウントの方式にcachedやdelegatedを利用することで気持ち早くはなりますが、やはりファイルの検索や、アプリケーションの実行速度には限界があるのではないでしょうか。
世の中にはやはり同じ問題に当たっている人がいるようで、公式の記事でContainer Volumeを使ったやり方が記載されていたので試してみました。

結論

結論から言うとパフォーマンスはLinuxでネイティブに動作させている時と遜色ないものとなりました。
DockerのContainerは捨てて作り直すことも多いですが、その際にも生き残るので使い勝手も必要十分です。

課題

  • マウント先は2021年8月現在/workspaces決め打ちなので、.devcontainer内の定義は更新が必要。
  • Rebuild Containerで0リセットになると認識しているメンバーがいるとつまづくので認識してもらう必要あり。
  • ブランチを指定して手元の環境に影響なく別環境を立てられるのが売りになっていますが、ポートの指定などが重複した際にうまく回避するような魔法はないので、そこは要注意。