こんにちは。よっしーです(^^)
今日は、PHPにおけるComposerの実行環境をDockerで構築する方法についてご紹介します。
背景
PHPにおけるComposerの実行環境をDockerで構築する方法について調査する機会があったので、そのときの内容を備忘として残しました。
今回作成したファイルは下記のGitHUBにあります。
概要
前回構築したPHPのComposer環境でPHPUnitをインストールするために、下記のコマンドを実行しました。
composer require --dev phpunit/phpunit
実行結果は下記のようになりました。
そのため、unzipコマンドをインストールしました。PHPUnitのインストールに必要な設定を次のセクションに記載しました。
構成ファイル一覧
下記のファイルを用意します。各ファイルの内容は各セクションに記載しています。
modified: php/Dockerfile
new file: php/src/Sample.php
new file: php/src/SampleTest.php
new file: php/src/composer.json
new file: php/src/composer.lock
php/Dockerfile
FROM php:8.2-cli
+RUN apt-get update \
+ && apt-get install -y --no-install-recommends \
+ unzip \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
# composerのインストール
COPY --from=composer:2.6.6 /usr/bin/composer /usr/bin/composer
php/src/Sample.php
<?php
require "Sample.php";
use PHPUnit\Framework\TestCase;
class SampleTest extends TestCase
{
public function testHello()
{
$this->assertSame('Hello, World!!', hello());
}
}
php/src/composer.json
下記のコマンドを実行したときに作成されます。
composer require --dev phpunit/phpunit
php/src/composer.lock
下記のコマンドを実行したときに作成されます。
composer require --dev phpunit/phpunit
動作確認
下記のコマンドを実行します。
make build
make login
PHPのコンテナにログインできたら下記のコマンドを実行します。
composer install
vendor/bin/phpunit SampleTest.php
下記のような実行結果になっていれば成功です。
解説
php/Dockerfile
このDockerfileの RUN
コマンドは、Debian系のLinuxディストリビューションであるUbuntuなどで使用される apt-get
パッケージマネージャを使用して、パッケージのインストールとクリーンアップを行っています。以下はコードの解説です。
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
unzip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
apt-get update
: パッケージリストを更新します。これにより、最新のパッケージ情報が取得されます。apt-get install -y --no-install-recommends unzip
:unzip
パッケージをインストールします。-y
: 対話的な確認なしでインストールを行います。--no-install-recommends
: 推奨されるパッケージをインストールしないようにします。これにより、不要な依存関係が増えるのを防ぎます。apt-get clean
: インストール時に生成されたキャッシュや一時ファイルを削除します。これにより、イメージのサイズを減少させます。rm -rf /var/lib/apt/lists/*
: パッケージ情報のキャッシュを削除します。これもイメージのサイズを減少させる目的があります。ただし、この操作はキャッシュをクリアするため、パッケージ情報の再ダウンロードが必要になります。
このセクションは、Dockerイメージ内でのパッケージのインストールとクリーンアップを行っています。これにより、余分なデータが残らず、イメージサイズを最小限に保つことができます。
composer require –dev phpunit/phpunit
このコマンドは、Composerを使用してPHPプロジェクトにPHPUnitを開発用の依存関係として追加するものです。具体的には、PHPUnitはPHPのユニットテストフレームワークであり、開発者がコードの品質を保つためにテストを作成し、実行するのに役立ちます。
コマンドの構造:
composer require --dev phpunit/phpunit
解説:
composer require
: Composerを使用してパッケージを追加するコマンドです。--dev
: このオプションは、パッケージを開発時のみに必要とする依存関係として追加します。これにより、本番環境へのデプロイ時には不要なパッケージが含まれなくなります。phpunit/phpunit
: PHPUnitパッケージを指定しています。
このコマンドを実行すると、Composerはcomposer.json
ファイルを更新し、require-dev
セクションにPHPUnitの依存関係を追加します。その後、必要なパッケージをダウンロードしてvendor
ディレクトリにインストールします。PHPUnitは主にPHPUnit.xml構成ファイルを使用してテストスイートを実行するため、適切な設定を行ってPHPUnitをプロジェクトに統合することが期待されます。
おわりに
今日は、PHPにおけるComposerの実行環境をDockerで構築する方法についてご紹介しました。
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント