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 の内容には、次の部分が含まれます。
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. 追加手順
概要
Docker を使用すると、PHP プログラムを独立したコンテナにパッケージ化し、デプロイと移行を容易にすることができます。この記事では、Docker を使用して PHP プログラムのパッケージ化とデプロイメントを実装する方法を紹介し、関連するコード例を示します。お役に立てれば!
以上がDocker を使用して PHP プログラムをパッケージ化してデプロイするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。