kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

docker for macからvagrant+dockerになるまでに試したこと

プロジェクトによりdockerが遅くなるときがあり、いろいろと試しました。

調べるとファイルの読み書きが多い場合に遅くなるらしく、プロジェクトの初期には影響がありませんでした。

自分の場合はPHPプロジェクトで発生しましたが、vueを使用したプロジェクトの表示をdockerで試した場合にはビルドのたびにかなり遅かった記憶があります。

PHPのプロジェクトはAPIを作っていましたが、レスポンスが3,4秒が通常になってしまい開発時にストレスが溜まるため環境を試してみた感じです。

dockerのmutagen使用

docs.docker.com

docker for macにてMutagen baseの同期が行えるようになるらしく、edge版であれば適用されていたので試してみました。

結果として速度的な改善はなく、期待していた速度にならずstable版に戻しました。

ただdocker for macをインストールするだけで使用できるメリットがよく、今後に期待している感じです。

検証として同期処理等も確認していなかったので、また安定板になってから試したいと思います。

docker-sync

docker-sync.readthedocs.io

ファイルの同期をrsyncかunionで行うアプリケーションです。

結果としてかなり改善されました。

初期の設定で苦労した点はありましたが、動きが早くなったためかなり満足して使っていました。

ただ使っているうちに段々とマシンがうなるようになりました。

たぶん色々と起動しているうちにパフォーマンスが落ちてきて、ファンが常にうなるようになりマシンの限界を感じたため動作を停止させました。

残念です。

ほかにも影響は少しあり、設定ファイルのdocker-compose.ymlのvolumeの部分をdocker-sync.ymlに分ける必要があり、phpstormでdebugをする際に影響が発生したためやめる判断になりました。

phpxdebugのbinファイルの場所をdocker-compose.yml経由で探しているため実行する設定が面倒になった)

またdocker-syncを使ったことがない人だとすぐに使い方がわからないため、個人で開発する場合のみに使うことになりそうで、早めに他の手段に変えておこうと判断した経緯があります。

vagrant + docker

最終的にこの組み合わせになりましたが、permission周りで悩まされるなどいまだに懸念点がなくなることはありませんね。

速度は申し分なく実用的だと思います。

ただ環境構築までの手間とdocker-composeの起動をssh経由かバッチを作成するなど面倒な部分はありますが、初期だけなのでストレスはかなりなくなりました。

環境ばかりに時間を使っていると開発をしなくなるので、このあたりに落ち着こうといい聞かせた感じです。

今後はどうしようか

linuxを開発機にしてもいいと思っているところがあり、ノートパソコンを検討している部分です。

ただwindowsを買って思ったのは、「macのfontがきれいなんだよなー。」という感想が出てしまったところです。

一回linuxPCを作って試してみるのがいいかな。

仮想環境は最近諦めてます。。。

参考

qiita.com