Docker を使用して PHP プログラムをパッケージ化してデプロイするにはどうすればよいですか?

王林
リリース: 2023-07-29 17:52:02
オリジナル
1880 人が閲覧しました

Docker を使用して PHP プログラムをパッケージ化してデプロイするにはどうすればよいですか?

クラウド コンピューティングとコンテナ化テクノロジの普及に伴い、アプリケーションのパッケージ化とデプロイに Docker を使用する開発者が増えています。この記事では、Docker を使用して PHP プログラムをパッケージ化してデプロイする方法を紹介し、関連するコード例を示します。

1. Docker のインストール

始める前に、まず Docker をインストールする必要があります。インストール手順については、Docker 公式ドキュメントを参照し、さまざまなオペレーティング システムに応じて対応するインストール方法を選択してください。

2. Dockerfile の作成

Dockerfile は、Docker イメージの構築プロセスを定義するために使用されるファイルです。必要なソフトウェア、環境、依存関係を指定し、PHP プログラムをパッケージ化できます。

まず、プログラムのルート ディレクトリに Dockerfile という名前のファイルを作成し、その中に次の内容を追加します。

# 指定基础镜像
FROM php:7.4-apache

# 拷贝程序文件到镜像中
COPY . /var/www/html/

# 安装程序所需的依赖
RUN apt-get update && apt-get install -y 
    libpng-dev 
    libonig-dev 
    libxml2-dev 
    && docker-php-ext-install -j$(nproc) pdo 
    && docker-php-ext-install -j$(nproc) mbstring 
    && docker-php-ext-install -j$(nproc) exif 
    && docker-php-ext-install -j$(nproc) pcntl 
    && docker-php-ext-install -j$(nproc) bcmath 
    && docker-php-ext-install -j$(nproc) gd 
    && docker-php-ext-install -j$(nproc) zip 
    && docker-php-ext-install -j$(nproc) mysqli 
    && docker-php-ext-install -j$(nproc) xml

# 设置Apache的DocumentRoot目录
RUN sed -ri -e 's!/var/www/html!/var/www/html/public!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!/var/www/html/public!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf

# 重启Apache服务
RUN service apache2 restart
ログイン後にコピー

上記の Dockerfile の内容には、次の部分が含まれます。

  • 指定された基本イメージは php:7.4-apache で、これには PHP と Apache の実行環境がすでに含まれています。
  • プログラム ファイルをイメージ内の /var/www/html/ ディレクトリにコピーします。
  • apt-get コマンドを使用して、プログラムに必要な依存関係をインストールします。
  • Apache の DocumentRoot ディレクトリを /var/www/html/public に設定します。
  • Apache サービスを再起動します。

3. Docker イメージのビルド

Dockerfile が存在するディレクトリで次のコマンドを実行すると、Dockerfile に基づいて Docker イメージが構築されます:

$ docker build -t php-app .
ログイン後にコピー

上記のコマンドの -t php-app はビルドされたイメージの名前の指定を示し、. は Dockerfile が配置されているディレクトリを示します。

4. Docker コンテナを実行する

イメージを構築した後、次のコマンドを使用して Docker コンテナを実行できます:

$ docker run -d -p 80:80 php-app
ログイン後にコピー

上記のコマンドでは、 -d は、コンテナをバックグラウンドで実行することを意味します。 -p 80:80 は、コンテナのポート 80 をホストのポート 80 にマッピングすることを意味します。 php-app は、実行中のコンテナ。

これで、http://localhost にアクセスすることで、Docker コンテナ内で実行されている PHP プログラムにアクセスできるようになります。

5. 追加手順

  1. プログラムがデータベースに接続する必要がある場合は、対応するデータベース ドライバーを Dockerfile に追加し、コンテナーの実行時にデータベース接続パラメーターを指定できます。
  2. プログラムに他のサービスまたはコンポーネントが必要な場合は、対応するインストール手順と構成手順を Dockerfile に追加できます。
  3. Docker Compose を使用すると、コンテナの構築と実行のプロセスを簡素化できます。具体的な使用方法については、Docker の公式ドキュメントを参照してください。

概要

Docker を使用すると、PHP プログラムを独立したコンテナにパッケージ化し、デプロイと移行を容易にすることができます。この記事では、Docker を使用して PHP プログラムのパッケージ化とデプロイメントを実装する方法を紹介し、関連するコード例を示します。お役に立てれば!

以上がDocker を使用して PHP プログラムをパッケージ化してデプロイするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート