Docker を使用して PHP 開発でプロジェクトをデプロイする方法
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 つの側面が含まれます:
- 基本イメージ: 最も必要なコンポーネントのみを含む小規模なディストリビューションである alpine バージョン 3.7 を選択しました。イメージのサイズが小さくなり、コンテナーの起動が速くなります。
- PHP に必要な拡張機能を追加する: 上に示したように、PHP に一般的な拡張機能を多数追加しました。
- コンテナの実行モードを設定します。コンテナの起動時に 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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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