ホームページ  >  記事  >  バックエンド開発  >  PHP開発における環境管理にコンテナテクノロジーを使用する方法

PHP開発における環境管理にコンテナテクノロジーを使用する方法

WBOY
WBOYオリジナル
2023-06-25 10:53:331374ブラウズ

現代の PHP 開発では、環境管理にコンテナー テクノロジーを使用することがますます一般的になってきています。この記事では、Docker コンテナー テクノロジーを使用して、PHP プロジェクトの開発環境を作成、構成、管理する方法を紹介します。

1. 環境管理にコンテナーテクノロジーを使用する理由

従来の PHP 開発では、現在のプロジェクトに適した環境を構築するために、大量の構成とインストールが必要です。これらの構成が均一にパッケージ化されていれば、開発時の移植性、一貫性、信頼性を向上させることができます。この場合、コンテナーテクノロジーの使用は避けられない選択になります。

具体的には、コンテナー テクノロジを使用する利点は次のとおりです:

  1. 環境の一貫性: コンテナーを使用すると、異なるマシンおよび異なる開発者の間で環境の一貫性を確保できます。
  2. 高い移植性: コンテナーは、環境を再構成することなく、コンテナー テクノロジーをサポートするあらゆる環境で実行できます。
  3. より優れた分離: コンテナーは仮想化と同様の分離を提供し、プロジェクトの異なる部分間の相互作用を確実に最小限に抑えることができます。

2. Docker を使用して PHP 開発環境を作成する

Docker は現在最も人気のあるコンテナ テクノロジの 1 つであるため、この記事では Docker を使用して PHP 開発環境を作成します。

  1. Docker のインストール

まず、ローカル環境に Docker をインストールする必要があります。公式 Web サイトから、マシンに適した Docker バージョンをダウンロードしてインストールできます。

  1. Dockerfile の作成

プロジェクトのルート ディレクトリに Dockerfile という名前のファイルを作成し、ファイルの内容を書き込みます。 Dockerfile は、Docker がイメージを作成するために使用するスクリプト ファイルです。具体的な Dockerfile の内容は次のとおりです。

FROM php:7.4-fpm

# Install dependencies
RUN apt-get update && apt-get install -y 
    git 
    libzip-dev 
    unzip

# Install PHP extensions
RUN docker-php-ext-install zip pdo_mysql

# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Set working directory
WORKDIR /app

Dockerfile ファイルは、既存の PHP ベース イメージから新しいイメージを構築することを意味します。次に、git、libzip、unzip などの必要な依存関係をインストールし、PHP 拡張機能 zip と pdo_mysql をインストールし、最後に Composer をインストールします。

COPY コマンドは、Composer イメージから新しいイメージにファイルをコピーするために使用されることに注意してください。これにより、Composer ツールが新しいイメージで通常どおり使用できるようになります。

  1. Docker イメージのビルド

次に、Dockerfile を使用して Docker イメージを構築する必要があります。ターミナルでプロジェクトのルート ディレクトリを入力し、次のコマンドを実行します:

docker build -t project-name .

ここで、project-name は作成する Docker イメージの名前で、最後の "." は Dockerfile ファイルが保存されているディレクトリを示します。位置しています。このコマンドは、プロジェクトの新しい Docker イメージを作成します。

  1. コンテナの実行

次のコマンドを使用して、新しいイメージのコンテナを起動します。

docker run -p 8000:8000 -v "$(pwd)":/app -it project-name

ここで、「8000」はポート番号です。この例では、コンテナのポート 8000 がホストのポート 8000 にマッピングされています。さらに、 -v パラメーターは、コンテナー内で PHP コードを実行できるように、現在のディレクトリをコンテナー内の /app ディレクトリにマップします。最後に、「project-name」は、使用する Docker イメージの名前を表します。

3. Docker Compose を使用して複雑な PHP プロジェクトを管理する

複雑な PHP プロジェクトの場合、複数のサービス (データ ストレージ、キャッシュ、Web サーバーなど) を使用する必要がある場合があります。現時点では、Docker Compose を使用してこれらのサービスを管理できます。

Docker Compose は、複数の Docker コンテナーを管理するために使用できる Docker 用のツールです。 Docker Compose を使用すると、複数のコンテナーを作成および構成し、それらをリンクし、いくつかの一般的なデプロイメント タスク (データ ボリュームやポート マッピングなど) を処理できます。

  1. docker-compose.yml ファイルの準備

Docker Compose は、docker-compose.yml という名前の構成ファイルに依存します。このファイルを PHP プロジェクトのルート ディレクトリに作成し、その中に作成するコンテナを定義します。以下に例を示します。

version: '3.4'

services:
  php:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - .:/app
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: app
      MYSQL_USER: app
      MYSQL_PASSWORD: secret
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

このファイルは、php と db という 2 つのサービスを定義します。

php サービスは、以前に作成した Dockerfile ファイルを使用して新しいイメージを構築し、コンテナの 8000 ポートをホストの 8000 ポートにマップし、現在のディレクトリをコンテナ内の /app ディレクトリにマップします。 。このサービスは db サービスにも依存します。

db サービスは MySQL 5.7 の公式イメージを使用し、MySQL の root パスワード、データベース名、ユーザー、およびその他の情報を設定するためのいくつかの環境変数を定義します。データ ボリュームも永続ストレージとして MySQL コンテナ内に作成されます。

このファイルは db_data という名前のボリュームも定義していることに注意してください。ボリュームは、異なるコンテナ間でデータを共有できるように、コンテナ内にデータを保存するために使用されます。ボリュームは、いくつかの永続ストレージ ソリューションも提供します。

  1. 複数のコンテナの実行

docker-compose.yml ファイルを作成した後、次のコマンドを使用して、PHP プロジェクトで定義されているすべてのコンテナを作成して起動できます。

docker-compose up -d

このコマンドは、定義されたすべてのサービスをバックグラウンドで実行します。

次のコマンドを実行すると、実行されたすべてのコンテナを確認できます。

docker ps
  1. コンテナの停止と削除

すべてのサービスとコンテナを停止する必要がある場合コンテナの場合は、次のコマンドを実行できます。

docker-compose down

このコマンドは、実行中のすべてのコンテナを停止し、すべてのサービスを削除します。特定のサービスを停止して削除する必要がある場合は、次のコマンドを実行できます。

docker-compose stop service-name
docker-compose rm service-name

ここで、service-name は、停止および削除するサービスの名前です。

この記事では、Docker を使用して PHP 開発環境を作成および管理するための基本的な概念と手順を紹介します。コンテナーテクノロジーを使用すると、開発プロセスの一貫性、移植性、信頼性が向上し、PHP プロジェクトの開発において重要な役割を果たします。

以上がPHP開発における環境管理にコンテナテクノロジーを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。