いきさつ
Railsのローカル開発環境をVagrant+dockerで立てて、RubyMineでrubyのインタプリタを設定する際に悩んだので解決方法をメモ。
解決方法
- tcpソケット経由でdockerを実行できるようにする。
- RubyMineにdockerの設定を追加する。
ローカル開発環境用で外部から接続されるケースは想定してません。
1. tcpで利用できるようにdockerのサービスを修正
$ vi /lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd://
2375で受けるようにする。
2. dockerデーモン再起動
$ systemctl daemon-reload
$ systemctl restart docker
3. ポート確認
$ netstat -ntap
2375が開いてればOK
4. RubyMineの設定
dockerの設定を追加
[File] -> [Settings] -> [Build, Execution, Deployment] -> [Docker]
を開く。
設定を追加し、[TCP socker]に宛先ホストと2375を入力して疎通できてればOK。
その他項目は適宜。
インタプリタを選択
[File] -> [Setting] -> [Languages & Frameworks] -> [Ruby SDK and Gems]
を開く。
[New remote...]で設定を追加し、上記設定を使って使用するrubyのイメージを選択する。
上手くいけばRubyMineが頑張ってインデックスを構築してくれます。
あとがき
とりあえず版でよく分かっていない部分もあるので、指摘とか注意点などあると嬉しいです。