Mutagen設定メモ

2021-10-09

なにこれ

Mutagenの設定メモ。

Docker Desctop for MacのVolumeマウント遅い問題の1つの解決策になります。

自分の環境での改善率は以下の様になりました。

  • RuboCop
    • 10倍改善
  • yarn test (Jest)
    • 6倍改善

MacやめてLinuxに変えようかなと思ったきっかけがDockerの性能のためなのですが、Mutagenを入れたら今の所ストレスは感じなくなりました! Vagrantの中でDockerを利用するのは面倒いとか、docker-syncは期待するほどパフォーマンス改善されないとか思ってましたが、しばらく使っていこうと思います。

Mutagenのインストール

MutagenのComposeを利用したいのでベータ版をインストールする
https://mutagen.io/documentation/orchestration/compose

$ brew install mutagen-io/mutagen/mutagen-beta

既存docker-compose.ymlをオーバーライドする

それぞれのプロジェクトで用意されているdocker-compose.ymlに対して設定をオーバーライドするファイルdocker-compose.override.ymlを用意します。

以下の様に元のdocker-compose.ymlに対して設定を追記することができます。

services:
  backend:
    volumes:
      - backendcode:/app

volumes:
  backendcode:

x-mutagen:
  sync:
    defaults:
      ignore:
        vcs: true
    backendcode:
      alpha: "."
      beta: "volume://backendcode"
      mode: "two-way-resolved"
      ignore:
        paths:
          - "/log"

Gitにcommitしないようにする

docker-compose.override.ymlをプロジェクトにコミットしたくない場合、.gitignoreへ追記したいと思いますが、.gitignoreにも追記したくない場合もありますよね。

その場合、.git/info/excludeにGit管理したくないファイル名を追記します。

Mutagenを利用してコンテナを立ち上げる

docker-composeコマンドとほとんど同じように利用できます。

$ mutagen compose up

コンテナ立ち上げたあとは普通にdocker-composeコマンドを利用できます。