こんにちはb0cchiです。

さっとテストするならPlaygroundでもいいじゃん?っていう意見もありますが、シークレットキーとかの入力が必要なテストだとPlaygroundってちょっと抵抗ありませんか?

というわけで、今回はPHPの環境をさっとdocker composeコマンドで構築するためのサンプルです。

コード全体はGithubにあげてありますので、手っ取り早く使いたい場合は、そちらを参照してください。

ディレクトリ概要

以下の構成にして、docker composeコマンドでPHPを実行できるようにしていきたいと思います。
index.phpがPHPの本体で、docker-compose.ymlファイルにdockerの設定を書いていきます。

quick-start-php
├─ src
|   └─ index.php
└─ docker-compose.yml

docker-compose.yml

version: '3'

services:
  php:
    image: php:8.1.5-apache     # (1)
    container_name: dev-php     # (2)
    ports:
      - 4001:80                 # (3)
    volumes:
      - ./src:/var/www/html     # (4)
  1. PHPのdockerイメージです。今回は8.1.5のバージョンを使っていますが、使いたいバージョンがある場合は、公式を参照して-apacheがあるものを選んでください。
  2. コンテナ名です。docker compose psしたときに、dev-phpの名前でコンテナが立ち上がります。
  3. ポート指定です。ブラウザで確認するときに、localhost:4001でアクセスできるようにします。4001をすでに使っている場合は、空いているポート番号を指定してください。
  4. ボリューム指定です。srcディレクトリをコンテナの/var/www/htmlへマッピングしています。

index.php

<html>
    <head>
        <title>Quick Start PHP</title>
    </head>
    <body>
        <?php echo '<h1>Quick Start PHP</h1>'; ?> 
        <div>
            <?php phpinfo(); ?>
        </div>
    </body>
</html>

PHPのサンプルファイルです。 echoで文字列出力しているのと、phpinfo()を使ってPHPのバージョン情報等を表示できるようになっています(ほぼPHP公式のサンプルコードです。)。
このindex.phpでサンプルコードや動作テストをさっとできるんじゃないかと思います。

レッツ実行!

上記のquick-start-phpディレクトリで以下のコマンドを実行します。

$ docker compose up -d

エラーなくカーソルが戻ってきたら、適当なブラウザ(下図ではchrome)を起動し、localhost:4001をアドレスバーに入力し下図のページが表示されたらOKです!

20220705_quick_start_php

最後に

さっと開発環境を構築して動作確認できると実装可能かどうか素早く判断し、不安要素を排除して精神的に楽になりましょう! ではでは。よい開発体験を!!