PHP アプリケーションのコンテナー化
前提条件
- Docker Desktop の最新バージョンをインストールしていること。
- git クライアント が利用可能であること。 本節の利用例ではコマンドラインベースの git クライアントを用いていきますが、別のクライアントを用いてもかまいません。
概要
本節では PHP アプリケーションをコンテナー化して実行する手順を示していきます。
サンプルアプリケーションの入手
このガイドでは、あらかじめビルドされている PHP アプリケーションを使っていきます。 このアプリケーションは依存パッケージの管理に Composer を使っています。 アプリケーションは Apache ウェブサーバーを使って提供されます。
端末画面を開いて、作業を行うディレクトリに移動します。 そして以下のコマンドを実行してリポジトリをクローンします。
$ git clone https://github.com/docker/docker-php-sample
サンプルアプリケーションは単純な hello world アプリケーションです。 そしてデータベース内に保存しているカウンターを加算します。 またテスト実行のため PHPUnit を用いています。
Docker アセットの初期化
アプリケーションを入手できたので、アプリケーションのコンテナー化に向けて docker init を実行し、必要な Docker アセットを生成します。
端末上から docker-php-sample ディレクトリに移動して docker init コマンドを実行します。
docker init はデフォルトの設定を生成していくものであり、アプリケーションに対する質問が出されるのでこれに答えていきます。
たとえばこのアプリケーションは PHP バージョン 8.2 を使っています。
以下の例における docker init への回答プロンプトを参考にして、同様の回答を行ってください。
$ docker init
Welcome to the Docker Init CLI!
This utility will walk you through creating the following files with sensible defaults for your project:
- .dockerignore
- Dockerfile
- compose.yaml
- README.Docker.md
Let's get started!
? What application platform does your project use? PHP with Apache
? What version of PHP do you want to use? 8.2
? What's the relative directory (with a leading .) for your app? ./src
? What local port do you want to use to access your server? 9000
上により docker-php-sample ディレクトリ内は以下の内容となるはずです。
├── docker-php-sample/
│ ├── .git/
│ ├── src/
│ ├── tests/
│ ├── .dockerignore
│ ├── .gitignore
│ ├── compose.yaml
│ ├── composer.json
│ ├── composer.lock
│ ├── Dockerfile
│ ├── README.Docker.md
│ └── README.mddocker init が追加した各ファイルについての詳細は以下を参照してください。
アプリケーションの実行
端末画面内の docker-php-sample ディレクトリから以下のコマンドを実行します。
$ docker compose up --build
ブラウザーを開いて http://localhost:9000/hello.php にアクセスしてアプリケーションを確認します。 単純な hello world アプリケーションが表示されたはずです。
端末画面から ctrl+c を押下してアプリケーションを停止します。
バックグラウンドでのアプリケーション実行
アプリケーションは端末から切り離して実行することができます。
それには -d オプションをつけます。
端末画面内の docker-php-sample ディレクトリから以下のコマンドを実行します。
$ docker compose up --build -d
ブラウザーを開いて http://localhost:9000/hello.php にアクセスしてアプリケーションを確認します。 単純な hello world アプリケーションが表示されたはずです。
端末画面から以下のコマンドを実行してアプリケーションを停止します。
$ docker compose down
Compose コマンドの詳細は Compose CLI リファレンス を参照してください。
まとめ
本節では Docker を使って、単純な PHP アプリケーションをコンテナー化して実行する方法について学びました。
関連情報
次のステップ
次の節では、Docker コンテナーを使ってアプリケーションの開発を行う方法を学びます。