21:00概要PHPには、Phinxというデータベースのマイグレーション用のライブラリがあります。これを、DockerのPHPイメージを使って動かそうとした時にやったことを書いておきます。準備Phinxは、PHPのライブラリのpdoやpdo_mysqlを使用しているので、公式のPHPイメージを利用するのではうまくいきません。そこで、公式のPHPイメージを元にPhinx用のイメージをビルドしておきます。pdoやpdo_mysqlが使えるイメージを持っているのであれば、この作業はいりません。今回は、下記のDockerfileを元にイメージをビルドします。pdo_mysqldocker-php-ext-installというコマンドでpdoやpdo_mysqlをインストールします。この内容をDockerfileという名前のファイルで保存したら、そのDockerfileのある場所で下記のコマンドを実行してイメージをビルドします。.-tを使ってphp_phinxという名前でイメージを作成しました。ここはお好みで変えてください。これで、イメージの準備ができたので、Phinxを使うことができます。使い方では、php_phinxイメージを使ってコンテナを作成して、Phinxを実行します。Phinxは、Composerを使ってvendorディレクトリにインストールしているものとします。init--rmで、コマンドを実行し終わったらコンテナを削除するようにしています。$PWD:/appから分かるように、このコマンドは、プロジェクトの直下で実行しています。することで、ホストマシンで作成した設定ファイルを読み込んでくれたり、書き込んだりしてくれます。/appはなくても動く場合もありますが、phinx.ymlを認識しない場合があるので、原則書いておくようにしましょう。initは、Phinxの初期設定をするコマンドで設定ファイルphinx.ymlを作成します。ここでPhinxへの指示を書きます。さいごにまさか、公式のPHPイメージをそのまま使うことができないということで少し苦労しました。ビルドという手間がありますが、PHPをホストマシンにインストールして使うよりはましだと思うので、是非参考にしてください。