نشر Next.js على Alibaba Cloud FC 3.0 - دليل عملي
Schwarz
مقال
نشر Next.js على Alibaba Cloud FC 3.0 - دليل عملي
نشر Next.js على Alibaba Cloud FC 3.0 - دليل عملي
دليل شامل باستخدام sesefg (Next.js 16) كمثال، يغطي سير العمل الكامل من التطوير المحلي إلى النشر على FC 3.0.
📋 نظرة عامة
نشر مشروع Next.js 16 (App Router + Standalone) على Alibaba Cloud Function Compute FC 3.0 مع نطاق مخصص.
النتيجة:
- الموقع: https://www.yuntun-bj.com
التقنيات المستخدمة:
- Next.js 16 — App Router, output: standalone
- Docker — نشر حاويات
- Alibaba Cloud FC 3.0 — بيئة Serverless
- Docker Hub — مستودع الصور
🚧 المشاكل والحلول
1. عدم تطابق بنية صورة Docker
أجهزة Mac M-series (arm64) تبني صور arm64 افتراضياً، لكن مثيلات FC هي amd64.
الحل: docker buildx build --platform linux/amd64
2. وحدات Native عبر البنى
وحدات @swc لا تعمل عبر البنى المختلفة.
الحل الموصى به: بناء محلي ثم COPY فقط في Dockerfile — 30 ثانية.
3. اسم دالة FC مقابل ربط النطاق
أداة s CLI أنشأت دالة web، لكن النطاق كان مرتبطاً بـ sesefg.
4. ISR غير دائم على FC
ذاكرة التخزين المؤقت ISR تضيع عند إعادة تدوير مثيلات FC. استخدام Revalidate API أو قبول SSR طازج.
✅ خطوات النشر الصحيحة
الخطوة 1: بناء محلي pnpm build
الخطوة 2: بناء ودفع الصورة docker buildx build --platform linux/amd64 -t alichs/sesefg:latest --push .
الخطوة 3: الحصول على Digest
الخطوة 4: تحديث دالة FC
aliyun fc UpdateFunction --region ap-northeast-1 --functionName sesefg \
--body '{"customContainerConfig":{"image":"docker.io/alichs/sesefg@DIGEST","port":3000}}'
الخطوة 5: التحقق
🔄 التحديث اليومي
تغييرات الكود: بناء → دفع → تحديث FC
تغييرات المحتوى: استدعاء Revalidate API فقط، لا حاجة لإعادة النشر.
💰 التكلفة
1 وحدة معالجة / 2048 ميجابايت ذاكرة / بداية باردة ~10-20 ثانية / طلب ساخن ~1-3 ثواني / شهري < ¥20
🔑 القرارات الرئيسية
- FC 3.0: يدعم Docker Hub بدون الحاجة لـ ACR
- المنطقة: ap-northeast-1 (طوكيو)
- بناء محلي + COPY (30 ثانية مقابل 4 دقائق)
- Docker Hub (مجاني)
توليد: 2026-05-04 | المشرف: Schwarz