توحيد القوة: دليل شامل لتثبيت وإعداد Laravel على Docker Compose
في عالم تطوير الويب المعاصر، يظهر إطار العمل Laravel كنجم متألق يلفت الأنظار بقوة وأداءه الرائع. ولدى استخدام Laravel بالتوازي مع تقنية Docker Compose، يتم توفير بيئة تطويرية فعالة وقوية، مما يسهم في تسهيل عملية التطوير والاختبار. دعونا نستكشف هذا الرحلة الشيقة حيث يتلاقى سحر Laravel مع سهولة استخدام Docker Compose.
للبداية، يجب تأكيد أن Docker و Docker Compose قد تم تثبيتهما بنجاح على النظام الخاص بك. من ثم، يمكنك إنشاء ملف docker-compose.yml
لوصف تكوين Docker Compose الخاص بك. في هذا الملف، ستحدد الخدمات المختلفة التي تحتاجها تطبيق Laravel، مثل قاعدة البيانات وخادم PHP.
yamlversion: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./your-laravel-app:/var/www/html
depends_on:
- app
app:
image: php:7.4-fpm
volumes:
- ./your-laravel-app:/var/www/html
db:
image: mysql:latest
environment:
MYSQL_DATABASE: your_database
MYSQL_USER: your_user
MYSQL_PASSWORD: your_password
MYSQL_ROOT_PASSWORD: root_password
في هذا المثال، يُفترض أن تكون ملفات تطبيق Laravel الخاص بك في مجلد يسمى your-laravel-app
. يتم تحديد الخدمات الرئيسية لـ Nginx كخادم و PHP-FPM لمعالجة الطلبات PHP. يتم تكوين قاعدة البيانات باستخدام خدمة MySQL.
ثم، يجب عليك إنشاء ملف .env
لتكوين Laravel الخاص بك، وضبط إعدادات قاعدة البيانات لتتناسب مع تكوين Docker Compose الخاص بك.
بمجرد الانتهاء من هذه الخطوات، يمكنك ببساطة تشغيل تطبيق Laravel الخاص بك باستخدام Docker Compose بالأمر docker-compose up -d
. سيقوم هذا ببناء وتشغيل كل الخدمات المحددة في ملف docker-compose.yml
.
إن تثبيت Laravel على Docker Compose يمنحك بيئة موحدة ومحمولة، مما يسهل عليك نقل تطبيقك بسهولة بين البيئات. تعد هذه العملية فعالة لفريق التطوير، حيث يمكن للمطورين العمل بشكل موازي على نفس البيئة دون مشاكل تعارض.
المزيد من المعلومات
بالتأكيد، دعنا نتوغل أعماقًا أكثر في عملية تثبيت وإعداد Laravel على Docker Compose.
فيما يخص تكوين خدمة PHP-FPM في Docker Compose، يمكنك تحديد مكتبات PHP المطلوبة وتكوينات PHP بشكل مخصص في ملف docker-compose.yml
. يمكنك أيضًا تحديد متغيرات البيئة اللازمة لتشغيل Laravel بشكل صحيح.
yamlapp:
image: php:7.4-fpm
volumes:
- ./your-laravel-app:/var/www/html
environment:
- APP_ENV=local
- APP_KEY=your_app_key
- DB_CONNECTION=mysql
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=your_database
- DB_USERNAME=your_user
- DB_PASSWORD=your_password
لاحظ أن هناك ارتباطًا بين خدمة PHP-FPM وخدمة قاعدة البيانات MySQL باستخدام DB_HOST=db
، حيث يتم تعيين “db” كاسم خدمة قاعدة البيانات في Docker Compose.
أما بالنسبة لخدمة Nginx، يمكنك تكوينها لتحميل تكوين خاص بـ Laravel. يمكنك إنشاء ملف nginx.conf
خاص بك وتوجيه Nginx لاستخدامه.
nginxserver { listen 80; index index.php index.html; server_name localhost; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /var/www/html/public; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass app:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
يمكنك تضمين هذا الملف في ملف docker-compose.yml
الخاص بك:
yamlweb:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./your-laravel-app:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
تلك الإعدادات ستقوم بتوجيه Nginx للتفاعل بشكل صحيح مع تطبيق Laravel الخاص بك.
أخيرًا، بعد تكوين Docker Compose، يمكنك الوصول إلى التطبيق Laravel الخاص بك عبر متصفح الويب عن طريق زيارة http://localhost
، حيث سترى صفحة البداية الافتراضية لـ Laravel.
تكامل Laravel مع Docker Compose ليس فقط يسهل على المطورين إعداد بيئة تطوير موحدة، ولكنه أيضًا يوفر سهولة التكرار والنقل بين بيئات مختلفة، مما يعزز كفاءة عملية التطوير والاختبار.
الخلاصة
في ختام هذا الرحلة المثيرة في عالم تثبيت وإعداد Laravel على Docker Compose، نجد أن هذا الزواج بين إطار العمل Laravel القوي وتقنية Docker Compose المبتكرة يفتح أفقًا جديدًا لتطوير تطبيقات الويب بطريقة فعّالة وموحدة.
من خلال تعريف ملف docker-compose.yml
، يمكنك بسهولة تحديد بيئة تشغيل متكاملة لتطبيقك، بدءًا من خدمة PHP-FPM وصولاً إلى خادم Nginx وقاعدة البيانات MySQL. يتيح لك Docker Compose إعداد بيئة تطويرية داخلية لتشغيل تطبيق Laravel الخاص بك بسرعة وسهولة، دون الحاجة إلى التفكير في التبديل بين الإعدادات والاعتماد على البنية التحتية.
إضافةً إلى ذلك، يمنحك هذا التكامل بين Laravel وDocker Compose مرونة في إدارة تكوينات التطبيق وتسريع عملية التطوير. سواء كنت تعمل بمفردك أو كجزء من فريق تطوير، يمكنك الآن تبسيط عمليات الاختبار والنشر باستخدام بنية قائمة على الحاويات.
في النهاية، يظهر أن استخدام Laravel مع Docker Compose ليس مجرد تحسين لعملية التطوير، بل هو استثمار في الكفاءة والاستدامة. بفضل هذا الاتحاد، يمكنك الآن الغوص بثقة في تطوير تطبيقات الويب، محققًا توازنًا بين القوة والسهولة في عالم تكنولوجيا المعلومات المتقدم.