はじめに
PhpStormには、Dockerコンテナ内のPHPをリモート実行させるためのRemote Interpreterという機能があります。
今回、Docker Desktop WSL 2をインストールした際、
PhpStormのRemote Interpreterの設定でDocker Compose経由でPHPを指定できないというトラブルが発生しました。
本記事ではその症状の原因と解決方法をまとめます。
結論
先に原因を述べると、「Docker Compose V2 (beta)が有効になっていたため」でした。
Docker Desktop WSL 2 の設定で 「Use Docker Compose V2」 チェックボックスをONにしていたため、PhpStorm未対応のバージョンがインストールされてしまったのだと思われます。
「Use Docker Compose V2」 チェックボックスをOFFにしたところ問題は解決しました。
症状について
Remote Interpreterを利用してDocker Compose経由でPHPを利用するためには、
PhpStormの設定画面を開き「CLI Interpreter」からPHPの設定されたコンテナを選択します。
このときに、Docker ComposeでService(コンテナ)を選択しようとしたら、対象のコンテナが選べずnetworks、servicesなどを選ぶようになってしまいました。
また、右上のプルダウンから開ける「Run/Debug Configurations」画面でも、docker-composeの設定でServicesを指定すると「”app” service doesnt exist in the specified docker-compose files」のようにエラーが出てしまいます。
なお、今回使用した「docker-compose.yml」はこちらです
version: "3.9"
services:
app:
image: php:8.0-fpm-buster
(※確認が目的なので、簡単なものにしています)
Serviceで「app」を指定できないためPHPを読み込むことも出来ず、Docker Compose経由で利用出来ない状況でした。
補足:PHP Remote Interpreterの設定方法
上記リンク内の「Docker Compose」タブを閲覧してください。
発生したときのバージョン情報
- Docker Desktop WSL 2
- 3.5.2
- PhpStorm
- 2021.2
- Windows 10
- バージョン:20H2
- ビルド:19042.1151
解決方法
原因は「Docker Compose V2 (beta)が有効になっていたため」でした。
どうやら、Docker Desktop WSL 2をインストールするときに、「Use Docker Compose V2」のチェックを付けていたようでした。
解決するためにはDocker Desktop WSL 2の設定から、
Docker Desktopの設定画面を開き、「Experimental Features」タブ内の「Use Docker Compose V2」のチェックを外します。
その後、右下の「Apply & Restart」を押してDockerを再起動すればOKです。
なお、Docker Compose V2が有効になっているかどうかはターミナルからdocker-composeのバージョンを調べることで確認できます。
$ docker-compose --version
Docker Compose version v2.0.0-beta.6
おわりに
今回のトラブルはDocker Compose V2(β版)がインストールされたことによる不具合でした。
Docker Compose V2はまだβ版のため、色々不具合も起こっているようです。
今回の件は、PhpStormがこのバージョンに対応していなかったためと思われます。
Docker Compose V2 はデフォルトでOFFだったと思うのですが、同様のトラブルが起きた場合は参考にしてみてください。
コメント