Docker Compose を使用して Laravel アプリケーションをオーケストレーションする
この記事では主に、Laravel アプリケーションをオーケストレーションするための Docker compose の使用法を紹介します。これには一定の参考価値があります。今、みんなに共有します。必要な友人は参考にしてください。
序文
Laravel公式 推奨開発環境はHomestead(実際にはパッケージ化されたVagrantボックス)ですが、これが割と重い気がするので、Docker composeを使って開発環境を整理してここに共有します。
環境要件
Docker と Docker compose を最初にインストールする必要があり、Docker ウェアハウス イメージを国内のものに置き換えることが最善です。通常、開発用コンピューター上で Vagrant を実行し、その上で Docker やその他のアプリケーションを実行します。
主なアイデア
Docker が公式に推奨しているのは、1 つのコンテナーで 1 つのサービスを実行することです。そのため、Compose オーケストレーションが存在し、各サービスはコンテナー相互接続テクノロジを通じて通信します。たとえば、Php サービスが接続するときなどです。 Mysql にコンテナ名として記述したホスト名を入力するだけで、内部で特定の IP に直接変換されます。コード ディレクトリはデータ ボリュームを使用してコンテナからホストにマッピングされ、構成ファイル (Nginx など) もデータ ボリュームを介してコンテナにマッピングされます。
実践
この一連のサービスをカプセル化しました。日常的に使用する場合は、複製して直接使用してください。ここでは主に実装のアイデアについて説明します。
プロジェクト アドレス: https://github.com/rootrl/php...
私のプロジェクト ディレクトリ構造:
php-environment-with-docker/
§── bin
│ ├── コンポーザー
│ っていつ── getContainerIp
│ └── php
── conf
│ §── nginx
│ │ └ ── conf.d
│ │ │ └─ nginx.conf
│ └─ redis
│ └─ redis.conf
─ docker-compose.yaml
─ ─ Dockerfile.php
─ LICENSE
─ README.MD
- bin これらはすべて、カプセル化されたコマンド ライン ツールです。 、これらも Docker コンテナ サービスですが、すべて使い捨てのサービスです。
- conf このディレクトリはアプリケーションの構成ディレクトリであり、
- docker-composer.yaml compose のオーケストレーション ファイルにマップされます。 Volume を使用するコンテナ。以下では、
- Dockerfile.php php のイメージ構築について具体的に説明します (DNS の変更や特別な拡張機能のインストールなど、いくつかのカスタマイズがあります)
- start ./start を実行してすべてのサービスを開始します。再起動後にこのコマンドを実行することもできます。
#docekr-compose.yaml
このファイルは compose のオーケストレーション ファイルです
version: '2' services: nginx: depends_on: - "php" image: "nginx" volumes: - "$PWD/conf/nginx/conf.d:/etc/nginx/conf.d" - "$PWD/www:/usr/share/nginx/html" ports: - "8888:80" networks: - oa-network container_name: "oa-nginx" command: /bin/bash -c "mkdir -p /var/www && ln -s /usr/share/nginx/html /var/www && nginx -g 'daemon off;'" php: image: "oa-php-fpm" build: context: . dockerfile: "Dockerfile.php" networks: - oa-network container_name: "oa-php-fpm" volumes: - "$PWD/www:/var/www/html" mysql: image: mysql:5.7 volumes: - "$PWD/db_data:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: root123 MYSQL_DATABASE: oa MYSQL_USER: oa MYSQL_PASSWORD: oa123 ports: - "3306:3306" networks: - oa-network container_name: "oa-mysql" redis: image: "redis" ports: - "6379:6379" networks: - oa-network volumes: - "$PWD/conf/redis/redis.conf:/usr/local/etc/redis/redis.conf" container_name: "oa-redis" networks: oa-network: driver: bridge
4 つのサービス php-fpm、nignx、mysql、redis がここで定義されています (他のサービスが必要な場合は、自分で追加してください)。次に、すべてのコンテナが簡単に通信できるようにパブリック ネットワークが定義されます。
たとえば、nginx.conf での
server { listen 80; server_name localhost; root /usr/share/nginx/html/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/public/$fastcgi_script_name; include fastcgi_params; } }
php-fpm での接続方法は、php:9000
Dockerfile.php
FROM php:7.2-fpm Run echo "nameserver 223.5.5.5" >> /etc/resolv.conf \ && echo "nameserver 223.6.6.6" >> /etc/resolve.conf \ && apt-get update \ && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-install mysqli pdo_mysql \ && pecl install swoole \ && pecl install redis \ && docker-php-ext-enable swoole redis
これです。 Php イメージをビルドし、ここで DNS サーバーを変更し、いくつかの PHP 拡張機能をインストールします。
すべてのサービスを開始するには、
Start
./start を使用します
コマンド ライン
./bin/php -v # Laravel artisan ./bin/php artisan
上記は、この内容全体ですこの記事がお役に立てば幸いです 皆様の学習が役に立ちます 関連コンテンツの詳細については、PHP 中国語 Web サイトにご注目ください。
関連する推奨事項:
以上がDocker Compose を使用して Laravel アプリケーションをオーケストレーションするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

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