(最終更新月:2023年8月)
✔以下のような疑問をお持ちの方へ向けて情報を提供します
「DockerとPHPを同時に使って開発したいけど、どうすればいい?」
「DockerとPHPの具体的な使い方を知りたい」
「Docker PHPの操作例を学びたい」
✔当記事を通してお伝えする内容
- DockerでのPHPセットアップ
- DockerとPHPの統合方法やその実践例
- Docker PHPの実戦的な例
当記事では、DockerとPHPを一体化する基本に加えて、それらのツールを活用した詳細な操作方法まで、適用事例を交えて細かく説明いたします。
ぜひ最後までお読みいただき、DockerとPHPを有効に利用する参考にしてください。
Dockerとその主要性について
こちらでは、「Docker」についてお伝えしていきます。
まずはDockerの基本をおさらいし、先へ進みましょう。
- Dockerの基礎説明
- Docker利用のメリットと注意点
Dockerの基礎説明
Dockerは、ソフトウェア開発におけるコンテナ技術のひとつです。
コンテナは、ひとつのオペレーティングシステム上で独立した環境を作成します。
ソフトウェアとその依存関係を一緒にパッケージ化し、システム間で共通した環境が構築可能です。
Docker利用のメリットと注意点
Dockerの利用によるメリットは以下のとおりです。
- 環境構築の複雑さを減らし、開発時間を短縮できる
- 開発環境の再現性が確保されるため、開発者間での作業の一貫性が向上する
セキュリティ面での考慮が必要で、それぞれのコンテナが適切に分離されていることの確認が重要です。
実践!DockerとPHPによるプロジェクト作り
それでは、DockerとPHPを使用したプロジェクトの作成について説明します。
PHPでのプロジェクトを実行する前段階です。
- Dockerの使用に必要な条件
- スムーズなDockerのインストール方法
- Dockerで使える主要なコマンド
- Docker Composeの利用とその重要性
- プロジェクトで使用するリソースの準備
Dockerの使用に必要な条件
Dockerを使用するには、まずオペレーティングシステムが64ビットで、バージョンが最新であることが必要です。
また、仮想化が有効になっていることを確認する必要があります。
スムーズなDockerのインストール方法
Dockerの公式ウェブサイトから、各オペレーティングシステム用のインストーラをダウンロードできます。
インストール後に、docker version
コマンドを実行し、Dockerが正しくインストールされたことを確認しましょう。
詳しくはこちらをご覧ください。
Dockerで使える主要なコマンド
Dockerには多くのコマンドがありますが、最も一般的なものは以下のとおりです。
docker pull
はDockerイメージを取得docker run
は新たにコンテナを作成して実行docker stop
は実行中のコンテナを停止
これらのコマンドを使うことで、Dockerの環境を管理できます。
Docker Composeの利用とその重要性
Docker Composeは、複数のDockerコンテナを管理するツールです。
ひとつのYAMLファイルで、複数のサービスの設定を管理できます。
Docker Composeを使うと、一連のコマンドをひとつのコマンドで実行できるので、効率性が大幅に向上します。
プロジェクトで使用するリソースの準備
PHPプロジェクトを作成するには、必要なライブラリやフレームワークの準備が必要です。
これらのリソースは通常、composer.jsonファイルを使って管理され、composer install
コマンドでインストールできます。
composerがインストールされているかは以下で確認しましょう。
composer -v
PHPとDockerを連携させる
DockerとPHPを連携させる方法を学ぶことで、より効率的な開発が可能となります。
- PHPを動かすためのDocker設定
- PHP環境の立ち上げと設定
- 必要なDockerfileの作成方法と実践
PHPを動かすためのDocker設定
まず、PHPを動かすためのDockerコンテナをセットアップします。
docker pull
コマンドで、最新のPHPイメージを取得しましょう。
$ docker pull php:latest
これにより、自分のマシンにPHPの環境をインストールせずに、Dockerコンテナ内でPHPを動かすことが可能となります。
dockerのpullコマンドについてはこちらをご覧ください。
PHP環境の立ち上げと設定
次に、PHPを動かすためのDockerコンテナを起動します。
以下のコマンドは、取得したPHPイメージを使用して、コンテナを起動します。
$ docker run -i php
-iでシェルを立ち上げます。
これにより、Dockerコンテナのシェルと対話形式でPHPコードのやり取りが可能です。
必要なDockerfileの作成方法と実践
Dockerfileは、Dockerイメージの作成手順を定義するためのファイルです。
以下は、基本的なPHP環境をセットアップするDockerfileの一例です。
FROM php:apache
WORKDIR /var/www/html
COPY . /var/www/html
RUN docker-php-ext-install pdo_mysql
Dockerファイルの解説です。
php:apache
イメージをベースにする- 作業ディレクトリを
/var/www/html
に設定する - ホストマシンのカレントディレクトリの内容を
/var/www/html
ディレクトリにコピー pdo_mysql
拡張機能をインストール
このDockerfileを元にDockerイメージをビルドするには、以下のコマンドを実行します。
$ docker build -t my-php-app .
my-php-app
という名前のDockerイメージが作成され、それを元にコンテナを起動できます。
PHPプロジェクトのビルドとテスト
ここでは、具体的にPHPプロジェクトをDocker環境でビルドし、テストする方法を説明します。
- docker-compose.ymlの作成方法と活用
- PHPのテストファイル作成
- アプリケーションの起動と動作確認
docker-compose.ymlの作成方法と活用
docker-composeは、複数のDockerコンテナの管理を簡単にするツールです。
docker-compose.yml
という設定ファイルに、コンテナ起動の指示を書いていきます。
以下は、PHPとMySQLを連携させるための基本的なdocker-compose.yml
の例です。
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:80"
volumes:
- .:/var/www/html
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
この設定ファイルでは、2つのサービス(web
とdb
)が定義されています。
各パートは以下のようになります。
サービス | 詳細 | 設定内容 |
---|---|---|
web | – Dockerfileを使用してビルド | – ホストの8080 → コンテナの80 (ポートマッピング) |
– カレントディレクトリ → コンテナの/var/www/html | ||
db | – 最新のMySQLイメージを使用 | – ルートユーザのパスワード設定 |
– 名前付きボリュームdb_dataを使用 (データ永続化) |
この設定により、docker-compose.yml
を使用して2つのコンテナ(webとdb)を一度に起動し、それらを連携させることが可能です。
以下のコマンドでDocker Composeを起動します。
$ docker compose up -d
PHPのテストファイル作成
テストファイルを作成することで、アプリケーションが想定どおりに機能することを確認できます。
以下はシンプルなPHPテストファイルの例です。
<?php
use PHPUnit\Framework\TestCase;
class SampleTest extends TestCase
{
public function testSample()
{
$this->assertEquals(2, 1 + 1);
}
}
?>
このテストは、1 + 1が2に等しいことを確認するシンプルなテストです。
PHPUnitを使用してテストを実行します。
Dockerのコマンドを使用してコンテナ内でテストを実行することもできます。
$ docker exec -it [container-id] ./vendor/bin/phpunit tests
ここで、[container-id]
は対象となるコンテナのIDを指します。
これにより、Dockerコンテナ内で直接テストの実行が可能です。
アプリケーションの起動と動作確認
アプリケーションの動作確認は、開発の各ステージで非常に重要です。
Dockerを使用してアプリケーションを起動し、その動作を確認します。
$ docker run -p 8080:80 -d my-php-app
これで、アプリケーションが8080ポートで動作するはずです。
アプリケーションが正しく動作していることを確認します。
まとめ
当記事では、DockerとPHPの使い方についてお伝えしてきました。
- Dockerとその利用のメリット
- Dockerのインストールと主要なコマンドの使用方法
- PHPとDockerを連携させ、PHPの環境をセットアップ
- PHPのアプリケーションをビルドし、テストを行う方法を学びました。
この手順は、PHPに限らず他の言語でも応用可能です。
ある環境で動作するアプリケーションは、ほかのどの環境でも動作するはずです。
もしエラーに遭遇した場合には、エラーメッセージをよく読み、必要ならばオンラインで情報を検索して解決策を探しましょう。