Mac上の docker で動かしている wordpress が死ぬほど重たいので Mutagenを使ってみた話です!
(パーミッションの問題が解決できていません!)
そもそも
volumes:
- ./hoge:/var/www/html/:cached
docker-compose.ymlのなかで上記のように設定してあるところが、なんだかとても重くなっていました。
Mutagen Extensionsでキャッシュを準備する
Docker DesktopのExtentions から Mutagen を追加します。
Extentions に表示されたMutagen から、Create Cacheをします。
無料だとキャッシュは1つしか作れません。
複数のプロジェクトが入る親のディレクトリをキャッシュしても良いという話も見かけたのですが、めちゃくちゃデータ量が多く PREPARING が終わらなかったので、dockerのマウントするディレクトリだけ選択しなおしました。
作成したキャッシュのステータスからPREPARINGが消えれば利用可能です。
パーミッション
UID 0、GID 0 となっているのは ファイルのオーナーとグループのことのようなのですが、無料ライセンスだとこの部分の変更ができません。
Mutagenのキャッシュを利用する設定でdockerを起動
docker --context=desktop-linux-mutagen compose up -d
Permission deniedが表示される
Mutagenを使っているとパーミッションの問題が発生します。
今回は、たとえば以下のような感じで /wp-content/内のいろいろな部分で怒られました。
Warning: imagepng(/var/www/html/wp-content/siteguard/1345846376.png): Failed to open stream: Permission denied in ~~~
ディレクトリのパーミッションが755になっているのですが、777にしないとファイルの生成ができない状態になってしまうようです。
設定ファイルを使った解決方法もあるようなのですが、Extentionsを使っているせいか上手く行かず…
とりあえずDockerの中に入ってディレクトリのパーミッションを777にする
コレジャナイ気がしますがいったん動かすために……
docker exec -it コンテナID sh
cd wp-content
chmod -R 777 .
これでとりあえずPermission denied
コンテナIDとは?
docker compose up
したときに 出てくる Container hogehoge Started
の hogehoge
の部分。
パーミッション変更したらGitでパーミッション変更が検知されちゃった
git管理ディレクトリにて、以下を使えばとりあえず無視できます。
git config core.filemode false
参考:【Git】ファイルパーミッションの変更(chmod)を無視する方法
なんか速くなってないとき
キャッシュが IN USE になっていないと(Used byのところにコンテナが表示されていないと)、速くなっていません。
以下のような感じで立ち上げ直しましょう。
docker compose down
docker --context=desktop-linux-mutagen compose up -d
おわり
元と比べると爆速になりました!!
パーミッションの問題を chmod 以外の方法で解決する方法を探しています…!
コメント