端くれプログラマの備忘録 Docker [Docker] 任意PHPバージョンを指定してcomposerを実行する

[Docker] 任意PHPバージョンを指定してcomposerを実行する

以下のDockerコマンドについて詳しく説明します。

コマンド

docker build -t localcomposer -f ./composer/composer.dockerfile ./composer

分解して解説

1. docker build

    • Dockerイメージをビルドするコマンドです。
    • 指定したDockerfileをもとに、新しいDockerイメージを作成します。

    2. -t localcomposer

      • -t は、作成するDockerイメージに「タグ(名前)」を付けるオプションです。
      • localcomposer はイメージの名前(タグ)で、後でこの名前を使ってイメージを参照したり実行できます。

      3. -f ./composer/composer.dockerfile

        • -f は、使用するDockerfileを明示的に指定するオプションです。
        • ./composer/composer.dockerfile は、使用するDockerfileのパスです。
          • 通常、docker build はカレントディレクトリの Dockerfile を自動で探しますが、-f を指定すると任意の場所にあるDockerfileを利用できます。

        4. ./composer

          • Dockerビルドの「コンテキスト」を指定します。
          • ビルドコンテキストには、Dockerfile内で使用されるファイルやディレクトリ(例: コピー元のファイルなど)が含まれます。
          • ./composer は、このビルドで使用するディレクトリです。

          このコマンドが行う処理

          1. Dockerイメージをビルド:
            • ./composer/composer.dockerfile を使ってDockerイメージを作成します。

            2. ビルドコンテキスト:

              • ./composer ディレクトリがビルドのコンテキストとして使用されます。
              • つまり、./composer 配下のファイルやディレクトリはDockerfile内の COPYADD などで使用可能です。

              3. イメージ名の付与:

                • 作成されたイメージは localcomposer という名前でタグ付けされます。

                具体例

                もし ./composer/composer.dockerfile が次のような内容だったとします:

                FROM php:8.1-cli
                RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

                この場合、以下の処理が行われます:

                1. PHP CLI(8.1)の公式Dockerイメージをベースにします。
                2. Composer(PHPの依存管理ツール)をダウンロードして、実行可能ファイルとしてインストールします。
                3. 作成されたイメージに localcomposer という名前が付けられます。

                このコマンドの目的

                • PHPプロジェクト用に、Composerが利用可能なカスタムDockerイメージ(localcomposer)を作成したい場合に使用されます。
                • 開発環境やCI/CDパイプラインで便利に使えるComposer専用のイメージを作成するためのコマンドです。

                確認方法

                1. イメージの確認:
                   docker images

                上記を実行すると、localcomposer という名前のイメージが作成されていることが確認できます。

                1. ビルドしたイメージの実行例:
                   docker run --rm localcomposer composer --version

                これで、Composerのバージョンが表示されるはずです。

                このコマンドで特定の用途に合わせたComposerイメージを作成し、効率的に開発を進めることができます!