PHPは様々な外部プログラムと連携できます。その中にはLinuxでないと動かない外部プログラムもあり、そういったプログラムと連携するPHPプログラムをテストするにはLinux環境が不可欠です。一方で自分のよく使う開発環境はWindowsです。Windows上で動かしているDocker中にPHPプログラムと外部プログラムを入れて、PhpStormからDocker中のPHPでテストを行う方法を紹介します。
用意するのは外部プログラムのインストール方法を継ぎ足した適当なDockerFileです。とりあえずcentosベースのイメージに継ぎ足せばらしくなります。以下はRTKLIBを入れるDockerFileの例です。
FROM centos:7
# 省略 PHPとかnginxとかのインストール. LaraDockやDocker LaravelでGitをググるといい感じのモノが見つかる
ARG RTKLIB_URL=https://github.com/tomojitakasu/RTKLIB.git
WORKDIR /home/www
RUN git clone ${RTKLIB_URL}
WORKDIR /home/www/RTKLIB/app
RUN make
COPY ./rtklib_seeder/rtk_store /home/www/rtk_store
COPY ./rtklib_seeder/base_station_signals /home/www/base_station_signals
これでローカルのWindows内にLinuxテスト環境ができました。後は次スクリーンショットの様にDocker内のPHPインタプリタをPhpStormで用いるインタプリタに設定。

スクリーンショットの様にPhpUnitをPhpStormから動かすだけでDocker内のPHPが動き、Docker内の外部プログラムを動かしてテストを行います。

