يمكن أن يكون نشر تطبيق الويب Next.js على الإنتاج أمرًا مبسطًا وفعالاً عند الاستفادة من مسارات AWS (Amazon Web Services) Elastic Beanstalk وDocker وCI/CD مع AWS Code Build وCode Deploy وGitLab. سيرشدك هذا الدليل خلال عملية إعداد مسار نشر حديث للتأكد من أن تطبيقك قوي وقابل للتطوير وسهل الصيانة.
قبل الغوص في عملية النشر، تأكد من أن لديك:
حساب جذر AWS أو حساب IAM مع إذن لإنشاء بيئات Elastic Beanstalk داخل AWS
تم تثبيت Docker على جهازك المحلي
حساب GitLab أو GitHub مع مستودع لتطبيق Next.js الخاص بك
مشروع Next.js جاهز للنشر
أدخل اسم التطبيق الخاص بك وانقر على إنشاء.
بعد إنشاء التطبيق، حان الوقت الآن لإنشاء البيئة الجديدة. انقر فوق إنشاء بيئة جديدة.
في كود التطبيق، اختر نموذج التطبيق لأننا سننشر الكود الخاص بنا من خلال AWS Code Pipeline.
في الإعدادات المسبقة، يمكنك ترك الأمر افتراضيًا، ومع ذلك، بالنسبة لتطبيقات الإنتاج، فمن المستحسن استخدام مثيل التوفر العالي. بمجرد تحديد الإعداد المسبق، انقر فوق "التالي".
قم بإنشاء أو استخدام دور الخدمة الحالي الخاص بك. من المهم أن يكون لديك دور خدمة Elastic Beanstalk بالإضافة إلى إعداد دور خدمة EC2 قبل متابعة إنشاء مثيل EC2.
ومع ذلك، إذا كنت ترغب في إدخال SSH إلى مثيل EC2 من جهازك الطرفي، فقم بإضافة زوج مفاتيح EC2، وقم بإنشاء ملف تعريف مثيل EC2 لتنفيذ العمليات الضرورية.
بما أننا لا نحتاج إلى تكوين قاعدة بيانات، فيمكننا المتابعة إلى الخطوة التالية من خلال النقر على التالي.
بالنسبة لحجم الجذر، سنختار SSD للأغراض العامة.
الآن، من مجموعة الأمان، يمكنك إما الاختيار من مجموعة أمان موجودة بالفعل أو تركها كما هي، وسوف تقوم Elastic Beanstalk بإنشاء واحدة لك أثناء إعداد مثيل EC2.
في حالة النشر لأغراض الإنتاج، فمن المستحسن دائمًا تكوين القياس التلقائي وتحديد نوع المثيل الذي ستنشئه Elastic Beanstalk لخدمة حركة المرور. سوف نذهب مع عائلة t3.
اضغط على التالي.
في التقارير الصحية، سنتبع التقارير الأساسية، ولكن لا تتردد في الاختيار من بين الخيارات المتاحة بناءً على نوع التقرير الذي تحتاجه.
سنقوم أيضًا بإلغاء تحديد تحديثات النظام الأساسي المُدارة لأنها غير مطلوبة للموقع التجريبي.
احتفظ بباقي الإعدادات كما هي وانقر على التالي.
أخيرًا، راجع التغييرات وانقر على إرسال.
ستطلق Elastic Beanstalk بيئتك، وسيستغرق الأمر بعض الوقت.
npx create-next-app@latest nextjs-blog --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
إذا كان لديك بالفعل رمزك الحالي جاهزًا، فيمكنك الانتقال إلى الجزء التالي
cd nextjs-blog
ثم قم بتشغيل الأمر التالي:
npm run dev
يؤدي هذا إلى تشغيل "خادم تطوير" تطبيق Next.js (المزيد حول هذا لاحقًا) على المنفذ 3000.
دعونا نتحقق لمعرفة ما إذا كان يعمل. افتح http://localhost:3000 في متصفحك.
حان الوقت الآن لإنشاء ملف Dockerfile داخل التطبيق.
قم بإنشاء ملف باسم Dockerfile في جذر التطبيق الخاص بك وأضف الكود التالي:
FROM node:18-alpine RUN mkdir -p /app WORKDIR /app COPY . . RUN npm install RUN npm run build EXPOSE 3000 CMD ["npm", "start"]
docker build -t testapp .
بمجرد نجاح الإنشاء، قم بتشغيل التطبيق باستخدام الأمر أدناه:
docker run -p 3000:3000 testapp
version: 0.2 artifacts: type: zip files: - '**/*'
قم بتسجيل الدخول إلى وحدة الإدارة في AWS، وانتقل إلى Code Pipeline، وانقر على إنشاء مسار.
أدخل اسمًا صالحًا لخط الأنابيب واختر وضع التنفيذ لخط الأنابيب. في حالتنا، سنختار في قائمة الانتظار (يتطلب نوع خط الأنابيب V2).
قم بإنشاء دور خدمة جديد إذا لم يكن موجودًا بالفعل أو اختر من دور الخدمة الموجود وانقر فوق التالي.
من مزود المصدر، حدد المكان الذي قمت بتخزين عناصرك فيه. سوف نختار "Gitlab".
من قائمة الاتصال، حدد اتصالاً موجودًا أو قم بإنشاء اتصال جديد.
بمجرد نجاح الاتصال، حدد اسم المستودع والفرع الذي سيتم استخدام الكود منه.
بالنسبة لنوع المشغل، سنختار بلا مرشح ثم نضغط على التالي.
عند النقر على متابعة مسار التعليمات البرمجية، ستغلق النافذة تلقائيًا وتعيدك إلى شاشة مسار التعليمات البرمجية.
حدد نوع البناء كبناء فردي وانقر على التالي.
يعد نشر تطبيق الويب Next.js على الإنتاج أمرًا سهلاً حقًا ويمكن تنفيذه بكفاءة أكبر باستخدام مسارات AWS Elastic Beanstalk وDocker وCI/CD باستخدام AWS Code Build وCode Deploy وGitLab.
يمكنك الوصول إليه باستخدام عنوان URL المقدم من Elastic Beanstalk. قم بإجراء التغييرات محليًا وسيتم نشرها تلقائيًا عند الانتقال إلى فرعك.
ترميز سعيد!!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3