ホームページ バックエンド開発 PHPチュートリアル Docker を使用して PHP 開発でプロジェクトをデプロイする方法

Docker を使用して PHP 開発でプロジェクトをデプロイする方法

Jun 27, 2023 pm 02:29 PM
php docker 展開する

Docker を使用して PHP 開発でプロジェクトをデプロイすることは、ますます一般的な傾向になっています。 Docker は、アプリケーションをコンテナにパッケージ化できる一般的なコンテナ化テクノロジであり、これにより開発者に、さまざまなオペレーティング システムや環境にアプリケーションをシームレスにデプロイし、アプリケーションの迅速な構築、デプロイ、アップグレードを実現できる標準化された開発環境を提供します。

Docker を使用して PHP 開発でプロジェクトをデプロイする方法について詳しく学びましょう。

ステップ 1: Docker のインストールと構成

まず、Docker がローカル システムにインストールされていることを確認します。Docker のインストール方法は、オペレーティング システムによって若干異なる場合があります。インストールが完了したら、ターミナルで docker version コマンドを使用して、インストールが成功したかどうかを確認します。

Docker 構成の中心は、Dockerfile ファイルを作成することです。これは、Docker イメージを作成するためのすべての手順が含まれるテキスト ファイルです。 Dockerfile では、PHP 開発に必要な環境を定義する必要があります。

ステップ 2: Dockerfile ファイルを作成する

Dockerfile ファイルを作成し、プロジェクトのルート ディレクトリに配置します。

Dockerfile には、次の内容を含める必要があります:

# 基础镜像,Golang alpine 3.7版本 
FROM alpine:3.7 

# 添加所有php常用库
RUN apk update 
&& apk add --no-cache 
php7-bcmath 
php7-ctype 
php7-curl php7-dom php7-fileinfo php7-ftp php7-gd php7-iconv php7-intl php7-json php7-ldap php7-mbstring php7-mysqli php7-mysqlnd php7-opcache php7-openssl php7-pcntl  
php7-pdo_mysql php7-pdo_sqlite  php7-phar  php7-posix  php7-session  php7-simplexml  php7-soap  php7-sockets  php7-sqlite3  php7-tokenizer  php7-xml  php7-xmlreader  php7-xmlwriter php7-zip php7-zlib 

# 修改时区
RUN apk add --no-cache tzdata 
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

# 在容器中创建目录并设置权限
WORKDIR /var/www/ 
RUN mkdir -p var/www/html 
&& chown -R nginx:nginx /var/www/html 

# 开放80端口
EXPOSE 80 

# 开始运行PHP-FPM
CMD ["php-fpm7", "-F"] 
ログイン後にコピー

上記は単純な Dockerfile ファイルの内容であり、主に次の 3 つの側面が含まれます:

  1. 基本イメージ: 最も必要なコンポーネントのみを含む小規模なディストリビューションである alpine バージョン 3.7 を選択しました。イメージのサイズが小さくなり、コンテナーの起動が速くなります。
  2. PHP に必要な拡張機能を追加する: 上に示したように、PHP に一般的な拡張機能を多数追加しました。
  3. コンテナの実行モードを設定します。コンテナの起動時に PHP-FPM が自動的に実行されるように、PHP の FPM プロセスをコンテナのデフォルト プロセスとして使用します。

ステップ 3: Docker イメージを生成する

次のコマンドを使用して PHP-FPM イメージを構築します:

docker build . -t php-fpm7:latest 
ログイン後にコピー

このコマンドは、現在のディレクトリ Mirror から自動的に構築されます。ラベルを php-fpm7:latest に設定します。

ステップ 4: docker-compose.yml ファイルを作成する

次に、アプリケーションの実行方法を定義する docker-compose.yml ファイルを準備する必要があります。

version: '3.1' 

services: 

# 定义Nginx服务 
nginx: 
image: nginx:1.13-alpine 
ports: 
- '8000:80' 
volumes: 
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro 
- ./nginx/conf.d:/etc/nginx/conf.d:ro 
- ./code:/var/www/html:ro 
depends_on: 
- php 

# PHP-FPM服务 
php: 
image: php-fpm7:latest 
volumes: 
- ./code:/var/www/html:rw 
- ./php/custom.ini:/usr/local/etc/php/conf.d/custom.ini:ro 

# MySQL服务 
mysql: 
image: mysql:5.7 
ports: 
- '3306:3306' 
env_file: 
- ./mysql/.env 
volumes: 
- ./mysql/data:/var/lib/mysql 
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
ログイン後にコピー

上記のように、Nginx、PHP、MySQL の 3 つのサービスを定義しました。ポート、構成、依存関係、マウントされたボリューム、その他の設定は、実際のニーズに応じて変更できます。

ステップ 5: アプリケーションを開始します

最後に、次のコマンドを使用してアプリケーションを開始します:

docker-compose up 
ログイン後にコピー

このコマンドは docker-compose.yml ファイルを読み取り、すべてを開始します。サービス。実行が成功したら、ブラウザから http://localhost:8000 にアクセスして、展開が成功したかどうかを確認できます。

概要:

上記は、Docker を使用して PHP 開発でプロジェクトをデプロイする方法です。従来のデプロイメント方法と比較して、Docker デプロイメントは開発およびデプロイメントのコストを削減し、アプリケーションのスケーラビリティと安定性を向上させ、開発者の時間を節約するのに役立ちます。この記事が、皆さんが Docker テクノロジーをよりよく学び、応用できるようになれば幸いです。

以上がDocker を使用して PHP 開発でプロジェクトをデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerでミラーを作成する方法 Dockerでミラーを作成する方法 Apr 15, 2025 am 11:27 AM

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

PHP:サーバー側のスクリプト言語の紹介 PHP:サーバー側のスクリプト言語の紹介 Apr 16, 2025 am 12:18 AM

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

Docker画像を保存する方法 Docker画像を保存する方法 Apr 15, 2025 am 11:54 AM

Dockerに画像を保存するには、Docker Commitコマンドを使用して、指定されたコンテナの現在の状態、Syntax:Docker Commit [Options]コンテナID画像名を含む新しい画像を作成できます。画像をリポジトリに保存するには、Docker Pushコマンド、Syntax:Docker Push Image Name [:Tag]を使用できます。保存された画像をインポートするには、Docker Pullコマンド、Syntax:Docker Pull Image Name [:Tag]を使用できます。

Dockerによってコンテナを出る方法 Dockerによってコンテナを出る方法 Apr 15, 2025 pm 12:15 PM

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

Docker画像が失敗した場合はどうすればよいですか Docker画像が失敗した場合はどうすればよいですか Apr 15, 2025 am 11:21 AM

障害のあるDocker画像ビルドのトラブルシューティング手順:DockerFileの構文と依存関係バージョンを確認します。ビルドコンテキストに必要なソースコードと依存関係が含まれているかどうかを確認します。エラーの詳細については、ビルドログを表示します。 -targetオプションを使用して、階層フェーズを構築して障害点を識別します。 Dockerエンジンの最新バージョンを使用してください。 -t [image-name]:デバッグモードで画像を作成して、問題をデバッグします。ディスクスペースを確認し、十分であることを確認してください。 Selinuxを無効にして、ビルドプロセスへの干渉を防ぎます。コミュニティプラットフォームに助けを求め、DockerFilesを提供し、より具体的な提案のためにログの説明を作成します。

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

See all articles