DockerでPHPをCLIで実行できる環境を構築する
DockerでPHPをCLIで実行できる環境を構築します。

環境
- Ubuntu 22.04.3 LTS (WSLで起動している)
- Docker Engine 26.0.0
前提
- Dockerをインストールしている。
WindowsでのDoker Engineのインストールについてはこちらをご覧ください。
環境構築の流れ
1. PHPファイルを作成する
実行するPHPのファイルを作成します。
以下を実行して”Hello World”を出力する sample.php を作成します。
$ echo '<?php echo "Hello World" . PHP_EOL;' > sample.php
ファイルの中身は以下の通りです。
<?php echo "Hello World" . PHP_EOL;
2. PHPコンテナを立ち上げる
作成したPHPファイルがあるディレクトリに移動します。
以下を実行します。
$ docker run -it --rm --name php-cli -w /app -v `pwd`:/app php:8.2-cli bash
php:8.2-cli のイメージから php-cli という名前のDockerコンテナを立ち上げ、bash コマンドでコンテナに接続しています。コンテナ名は任意です。(docker run コマンドについて)
3. PHPファイルを実行する
PHPコンテナに接続した状態で以下を実行します。
PHPファイルがあるディレクトリをPHPコンテナ内の /app ディレクトリにマウントしてるので、/app 以下に sample.php があるはずです。
/app# php sample.php
Hello World
作成したPHPファイルを実行できました。
exit コマンドでコンテナとの接続を切ると、docker run コマンドの rm オプションの効果でコンテナが削除されます。
/app# exit
exit
$ docker ps -a # コンテナは削除されたため表示されない
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
再びコンテナを作成し、PHPファイルを実行したい場合は手順2からやり直してください。
PHPコンテナを立ち上げるタイミングでPHPファイルを実行する
PHPコンテナを立ち上げるタイミングでPHPファイルを実行する場合は、手順2で実行した docker run コマンドの bash を php sample.php に変更して実行します。
$ docker run -it --rm --name php-cli -w /app -v `pwd`:/app php:8.2-cli php sample.php
Hello World
コンテナ起動時に bash コマンドを実行する代わりに php sample.php を実行します。
PHPファイルを作成せずにPHPを実行する
PHPファイルを作成せずにPHPを実行する場合は、手順1を行わず、手順2で実行した docker run コマンドの bash を php -r "echo 'Hello World' . PHP_EOL;" に変更して実行します。
$ docker run -it --rm --name php-cli -w /app -v `pwd`:/app php:8.2-cli php -r "echo 'Hello World' . PHP_EOL;"
Hello World
コンテナ起動時に bash コマンドを実行する代わりに php -r "echo 'Hello World' . PHP_EOL;" を実行します。
php コマンドの r オプションで、コマンドラインのみでPHPを実行できます。