連続投稿4日目です。
あなたはローカル環境を何で構築していますか?僕は基本的にはDocker(for Mac)で構築しています。
僕の周りにDockerで構築している人が多いので世間一般的にも多いのか?と思っているのですがいかがでしょうか。
さて、今回はそのDockerで重くなったときの対処法です。
Docker for MacにWordPressを構築した際に、テーマのファイル数やプラグインが多くなると動きがモッサリ遅くなることがあります。そんなとき「しょうがないことだろう」と思っていたのですが、少し調べてみるとやはり原因がそれなりにあるんですね。苦笑
では早速、対処法を紹介していきます。
目次
Docker for Macが遅い原因
マウントしているVolumeが原因のようです。Volumeの読み書きを同期するのですが、その同期の精度がデフォルトでは完全に同期する仕様になっています。
詳しくはDocker公式の記事をご覧ください。
Docker for Macを高速化しよう
結論から言うと、docker-compose.ymlファイルのvolume引数に下記のオプションを設定してあげます。
高速化する場合は「cached」または「delegated」を引数に使用します。
オプション名 | パフォーマンス | 一貫性 |
---|---|---|
consistent | 遅 | 完全な一貫性。常にホストとコンテナが完全に同じ表示(デフォルト) |
cached | 中 | ホストの表示が信頼できる。ホスト上の更新がコンテナ上に反映するまで、遅延が発生するのを許容 |
delegated | 早 | コンテナの表示が信頼できる。コンテナ上の更新がホスト上に反映するまで、遅延が発生するのを許容 |
設定方法
docker runの場合
docker run -v /Users/yallop/project:/project:cached alpine command
docker-compose.ymlの場合
volume: /Users/yallop/project:/project:delegated
まとめ
まとめるほどの内容ではありませんが、まぁMacのDockerがWindowsと違う処理方法で、Volumeとの整合性とパフォーマンスを天秤にかけてる感じ。で、パフォーマンスのチューニングをユーザーそれぞれでやってねってことですね。たぶん。Docker難しい。。。。
ではでは。