مرحبا بالجميع! تحسبا لبدء الدورات "Framework Laravel" و "Backend Developer في PHP" ، نواصل تبادل مواد مثيرة للاهتمام حول هذا الموضوع. دعنا نذهب.
على مدى السنوات القليلة الماضية ، زادت شعبية Laravel
بشكل كبير . يرى مجتمع Laravel أن Laravel جعل عملية العمل في PHP أكثر متعة مقارنة بالألم الذي كان عليه من قبل. لارافيل 6 لديه بعض
الميزات الجديدة
الرائعة . يستغرق الحصول على عنوان URL عامل قابلاً للتطوير للتطبيق ساعات ، إن لم يكن أيامًا. وخلق شيء مثل Kubernetes مهمة شاقة. في مثل هذه الحالات يكون Google Cloud Run في أفضل حالاته ، لأنه يمكنك من خلاله الحصول على عنوان URL HTTP صالح للعمل لأي من تطبيقات الحاويات الخاصة بك في غضون دقائق.
Google Cloud Run بدون خادم وتقوم Google بإدارته بالكامل. يمكنك الحصول على تحجيم فائق وسداد في الثانية وعناوين URL HTTPs ورسم خرائط المجال الخاص بك.
إذا كنت ترغب في تشغيل حاويات بدون جنسية ، فإن Cloud run هي أسهل طريقة للقيام بذلك. في هذه المقالة ، سأشرح بالتفصيل كيفية جعل تطبيق Laravel 6 يعمل على سحابة Google مع استمرار التكامل (CI).
المتطلبات المطلوبة
- أنت على دراية بـ PHP / Composer وتعرف على Laravel (أعتقد أنك لن تكون هنا) ؛
- أنت تعرف كيفية استخدام Git من وحدة التحكم ؛
- يتم استضافة رمز CI / CD الخاص بك على GitHub وأنت تعرف كيفية استخدامه ؛
- أنت على دراية بـ Docker ، وربما حتى مع التجميع متعدد المراحل ؛
- لديك حساب يعمل في Google Cloud (يمنحك قرضًا بدون فوائد بقيمة 300 دولار لمدة عام واحد ، ولا يوجد سبب لعدم تشغيله).
لماذا سحابة المدى هو عظيم بالنسبة للمبتدئين
لسببين ، والتي سوف أصفها أدناه:
- سوف تتعلم عن أفضل الممارسات والبرامج مثل Docker و CI / CD.
- سيعمل الإطار الرئيسي بعد النقر فوق زر ما ، واختيار شيئين وخمس دقائق من الانتظار ، ويمكنك الحصول على عنوان URL HTTP للعمل. كم أسهل؟
خطوات النشر
فيما يلي دليل لإعداد ونشر Laravel 6 على Cloud Run:
1. استنساخ Laravel أو مشروع Laravel جديدابدأ باستنساخ Laravel أو استخدم الملحن أو Laravel CLI ، كما هو موضح في دليل
التثبيت الرسمي.
أستخدم الملحن للحصول على أحدث إصدار من Laravel ، كما هو موضح أدناه:
composer global require laravel/installer
قمت بتشغيل الأمر التالي للحصول على أحدث إصدار من Laravel:
composer create-project --prefer-dist laravel/laravel laravel6-on-google-cloud-run
2. الاختبار الأول محلياثم قم بتشغيل
cd laravel6-on-google-cloud-run
ثم
php artisan serve
. لنرى أن كل شيء يعمل ، ذهبت إلى العنوان
http: // localhost: 8000 في المتصفح وكان يعمل لي. كان لي PHP 7.2 مثبتة محليا.
3. إنشاء مستودع جديد على جيثبأنشئ مستودعًا جديدًا على جيثب كما هو موضح أدناه:

4.
إضافة مستودع و READMEالآن بعد أن قمت بإنشاء المخزون ، أضفه إلى النسخة المحلية من Laravel وأضف ملف README.
للقيام بذلك ، قم بتشغيل الأوامر التالية في وحدة التحكم:
git init code .
بعد تشغيل الأمر في مستودع التخزين على GitHub ، ظهر ما يلي:
5. إضافة Laravel الكامل ، افتح طلب السحبالآن ، دعنا نرسل التطبيق بالكامل كطلب سحب إلى مستودع جيثب عن طريق تشغيل الأوامر التالية:
بعد ذلك ، افتح "طلب السحب" في المستودع ، مثل
هذا . ربما تعتقد لماذا أحتاج إلى طلب سحب إذا كنت أعمل في مشروع وحده؟
حسنًا ، حسنًا ، أعتقد أنه يجب عليك دائمًا اتباع نهج منتظم ، حتى لو كنت تعمل بمفردك.
بعد ذلك ، إبطاء طلب السحب الخاص بك.
6. اختبار الإعداد مع الإجراءات جيثبليس الجزء الممتع. بعد الانتهاء من طلب السحب ، ستعلم GitHub أن هذا مشروع Laravel. انقر فوق علامة تبويب "
الإجراءات" في صفحة المستودع الخاصة بك وسوف ترى شيئًا يشبه ما هو موضح أدناه:

انقر فوق
إعداد سير العمل هذا أسفل
Laravel ، وفي الصفحة التالية ، انقر فوق الزر "
بدء الالتزام" في الزاوية العلوية اليمنى. بعد ذلك ، أضف رسالة الالتزام كما هو موضح أدناه وانقر فوق "
الالتزام بملف جديد" .

هذه هي الطريقة التي حصلت على تثبيت CI الخاص بك. سيتم تشغيل اختبارات Laravel افتراضيًا الآن على كل دفعة تلقائية. هل هو صعب؟
بفضل Great Mind GitHub!
لا مزيد من إنشاء ملفات.
.myCIname.yml
!
7. إضافة عامل ميناء وتشغيل عامل بناء يؤلف لتشغيل التطبيق محلياالآن دعنا نضيف عامل ميناء ونجعل عامل التشغيل يؤلف لتشغيل التطبيق محليًا دون PHP أو
خدمة الحرفيين .
تم استلهام هذا الجزء من البرنامج التعليمي من قبل Nicolas's Laravel على
Google Cloud Run .
إذا كنت تريد معرفة المزيد عن
Docker و Laravel ، راجع
هذه المقالة .
للبدء ، قم بتشغيل الأوامر التالية لتحديث الفرع الرئيسي ، حيث قمنا بإضافة ملف سير عمل جديد باستخدام واجهة GitHub:
git checkout master git fetch git pull --rebase origin master
أضف المفتاح إلى ملف
.env.example
،
.env
ملف
.env
، كما هو موضح أدناه:
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:DJkdj8L5Di3rUkUOwmBFCrr5dsIYU/s7s+W52ClI4AA= APP_DEBUG=true APP_URL=http:
نظرًا لأن هذا مجرد عرض ، يمكنك القيام بذلك ، ولكن في التطبيقات الحقيقية ، كن حذرًا في الأسرار. للتطبيقات الجاهزة للإنتاج ، قم بتعطيل تصحيح الأخطاء والأشياء الأخرى المتعلقة بالتطوير.
أضف ملف
Dockerfile هذا إلى جذر المشروع:
FROM composer:1.9.0 as build WORKDIR /app COPY . /app RUN composer global require hirak/prestissimo && composer install FROM php:7.3-apache-stretch RUN docker-php-ext-install pdo pdo_mysql EXPOSE 8080 COPY --from=build /app /var/www/ COPY docker/000-default.conf /etc/apache2/sites-available/000-default.conf COPY .env.example /var/www/.env RUN chmod 777 -R /var/www/storage/ && \ echo "Listen 8080" >> /etc/apache2/ports.conf && \ chown -R www-data:www-data /var/www/ && \ a2enmod rewrite
أضف الملف التالي إلى
docker/000-default.conf
:
<VirtualHost *:8080> ServerAdmin webmaster@localhost DocumentRoot /var/www/public/ <Directory /var/www/> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
بعد ذلك ، قم بإضافة
docker-compose.yml
version: '3' services: app: build: context: ./ volumes: - .:/var/www ports: - "8080:8080" environment: - APP_ENV=local
لنقل كل شيء إلى الشيء الرئيسي.إذا كنت تحاول فهم كل شيء مكتوب هنا ، فيمكن أن يكون شاملاً ، لذلك اسمحوا لي أن أخبرك بالأجزاء الرئيسية:
- نحن نستخدم صورة عامل إرساء PHP Apache الرسمي لتشغيل Laravel ، وله PHP الإصدار 7.3.
- نحن نستخدم بناء متعدد المراحل للحصول على التبعيات مع الملحن ، ثم ننسخها إلى صورة عامل الميناء الرئيسي ، الذي يحتوي على PHP 7.3 و Apache.
- نظرًا لأن Google Cloud Run يتطلب من خادم الويب الاستماع على المنفذ 8080 ، فإننا نستخدم
000-default.conf
لتهيئة هذا. - لتسهيل تشغيل عامل التشغيل ، قم بإدخال أمر إنشاء عامل تشغيل واحد فقط.
- الآن بعد أن قرأت هذه النقطة ، قم بتشغيل عامل التأسيس من الجذر ويجب أن يعمل كل شيء على
http://localhost:8080
، في هذه الحالة ستفهم أن Laravel 6 يعمل محليًا في Docker.
ترى أدناه الإخراج بعد تشغيل
docker-compose up
النهاية:

إذا كان لديك Laravel تعمل مع Docker ، فافتح طلب سحب جديد (على سبيل المثال ،
واحد ) وأضف Docker إلى مشروعك.
قمت بتشغيل الأوامر التالية في جذر المشروع قبل فتح طلب السحب:
git status
سوف تحصل على شيء مثل هذا:
On branch docker Untracked files: (use "git add <file>..." to include in what will be committed) Dockerfile docker-compose.yml docker/ nothing added to commit but untracked files present (use "git add" to track)
وتشغيل الأوامر التالية:
git add . git commit -m "Add docker and docker compose" git push origin docker
كمكافأة ، سيتم تشغيل اختبار Laravel الافتراضي بعد الدفع ، كما هو موضح أدناه:

يمكن فقط لمالك المستودع الوصول إلى علامة التبويب "الإجراءات" ، لذلك لا يحتاج الأشخاص الآخرون إلى معرفة نتائج تصميماتك التجريبية
8. أضف عملية نشر إلى
زر Google Cloud .
الآن لننشر تثبيت Laravel هذا على Google Cloud Run بطريقة بسيطة. في هذه المرحلة ، يُعتقد أنك نظمت طلب السحب من فرع الرصيف.
لننفذ الأوامر التالية:
git checkout master git fetch git pull --rebase origin master git checkout -b cloud-run-button
أضف التالي إلى ملف
readme.md
الخاص بك:
### Run on Google cloud run
[](https://console.cloud.google.com/cloudshell/editor?shellonly=true&cloudshell;_image=gcr.io/cloudrun/button&cloudshell;_git_repo=https://github.com/geshan/laravel6-on-google-cloud-run.git)
استبدل الجزء الأخير من عنوان URL الخاص بـ HTTP لمستودع التخزين الخاص بك بعناية ، على سبيل المثال ، إذا كان مستودعك موجودًا على
العنوان الذي سيتغير
إليه ، فقم بالالتزام
والدفع .
يجب أن يبدو طلب السحب الخاص بك مثل
هذا .
9. نشر على تشغيل جوجل السحابيةبعد دمج طلب السحب ، انتقل إلى صفحة المستودع وانقر فوق الزر "
تشغيل على Google Cloud" .

بعد ذلك ، إذا قمت بتسجيل الدخول إلى حسابك في Google وكان لديك برنامج إعداد السحاب من Google بمشروع واحد ، فانقر فوق الزر "متابعة". قد تضطر إلى الانتظار قليلاً ، بعد هذا:
- اختر مشروعًا - اختر مشروعًا لنشر هذا التطبيق
اختر منطقة - اختر منطقة لنشر هذا التطبيق ، وعادةً ما أختار us-central-1
ثم انتظر الحاوية لجمع وتوسيع ، العملية في حالتي تبدو كما يلي:
إذا سارت الأمور على ما يرام ، فستشاهد على Google Cloud Shell عناوين URL لـ HTTP التي يمكنك النقر فوقها لترى أن تطبيق Laravel يعمل ، كما هو موضح أدناه:

ما حدث أعلاه هو هذا:
- بعد اختيار المنطقة ، قام البرنامج النصي ببناء صورة لحاوية عامل الميناء من Dockerfile في المستودع ؛
- ثم دفع الصورة المجمعة إلى Google Container Registry ؛
- بعد ذلك ، باستخدام gcloud CLI ، ينشر الصورة المجمعة إلى Cloud Run ، والتي تُرجع عنوان URL.
10. يا هلا! تطبيقك يعمل!بعد الحصول على عنوان URL ، سترى التطبيق الخاص بك يعمل على Google Cloud Run ، كما هو موضح أدناه:

إذا كنت ترغب في نشر إصدار مختلف ، يمكنك تغيير طلب السحب الخاص بك لإتقانه والنقر فوق الزر مرة أخرى للنشر.
المزيد حول Google Cloud Run
أسعار Google Cloud Run سخية للغاية. يمكنك تشغيل أي تطبيق في حاوية أو تطبيق ويب في Google Cloud Run.
قمت بتشغيل مشروع منزلي تلقى طلبًا واحدًا في الدقيقة ، ولم أضطر إلى دفع أي شيء.
تحت غطاء محرك السيارة ، وقال انه يستخدم Knative و Kubernetes. يمكن تشغيله أيضًا في نظام Kubernetes الخاص بك ، ولكن من يريد إدارة نظام K8s إذا كان يمكنك فقط الضغط والتعلم من تطبيق مُدار بالكامل بدون خادم قابل للتطوير
TLDR
لتشغيل Laravel 6 على Google Cloud Run بسرعة ، اتبع الخطوات التالية:


استنتاج
نأمل أن يكون تشغيل تطبيق Laravel على تشغيل السحاب من Google بمثابة مهمة بسيطة لك. لقد تمكنت حتى من إجراء الاختبارات باستخدام إجراءات Github. آمل أن يكون هذا المقال مفيدًا لك.
لاتخاذ نهج CI / CD ، يمكنك قراءة هذه
المقالة ، التي تتحدث عن استخدام البنيات في السحابة. نظرًا لأن الحاوية نفسها تعمل محليًا وعلى الإنتاج (Google Cloud Run) ، فلن تحتاج إلى معرفة إطار عمل جديد من أجل التبديل إلى بنية بدون خادم.
يمكن تشغيل أي تطبيق ويب في الحاوية على Google Cloud Run ، لذلك أعتبره خدمة رائعة!
هذا كل شيء ، ونذكرك أنه في يومي 21 و 22 كانون الثاني (يناير) ، يمكن للجميع زيارة الموقع المجاني المجاني على الإنترنت ، حيث سننشئ روبوت Telegram لطلب القهوة في المؤسسة والدفع عبر الإنترنت. يمكنك الاشتراك في اليوم الثاني من مكثفة هنا .