Firebase App Hosting ใช้ Cloud Build เพื่อเปลี่ยนซอร์สโค้ดของแอปพลิเคชันให้เป็นรูปแบบที่อยู่ในคอนเทนเนอร์ซึ่งเหมาะสำหรับการติดตั้งใช้งานใน Cloud Run
กระบวนการสร้างจะดำเนินการผ่านขั้นตอนสำคัญต่อไปนี้
ส่งผ่านข้อมูล: รวบรวมซอร์สโค้ดและการกำหนดค่าของแอปพลิเคชัน
สร้าง: ติดตั้งการอ้างอิงและสร้างแอปพลิเคชัน
ส่งต่อ: สิ้นสุดการผลิตคอนเทนเนอร์ Cloud Run
ขั้นตอนทั้ง 3 นี้สอดคล้องกับขั้นตอนการสร้างที่ 1, 2 และ 3 โดยตรงตามที่แสดงใน Cloud Build ในคอนโซล Google Cloud
ขั้นตอนการส่งผ่านข้อมูล
ขั้นตอนนี้มีหน้าที่จัดการตรรกะก่อนการสร้าง อ่าน ล้างข้อมูล และ
เขียนตัวแปรสภาพแวดล้อมที่กำหนดโดยผู้ใช้ นอกจากนี้ ยังยกเลิกการอ้างอิงและปักหมุดข้อมูลลับที่ระบุไว้ในไฟล์ apphosting.yaml
ด้วย
ขั้นตอนการสร้าง
นี่คือหัวใจสำคัญของกระบวนการบิลด์ ซึ่งมีหน้าที่สร้างอิมเมจคอนเทนเนอร์ที่เรียกใช้ได้และไฟล์ bundle.yaml
ที่กำหนดค่าบิลด์
โดยใช้ Cloud Native Buildpacks
เพื่อแพ็กเกจ
แอปพลิเคชันอย่างมีประสิทธิภาพ ดูข้อมูลเพิ่มเติมเกี่ยวกับbundle.yaml
ไฟล์ได้
ใน github
Buildpack มีหน้าที่แปลงซอร์สโค้ดของแอปพลิเคชันเป็นอิมเมจคอนเทนเนอร์ที่พร้อมใช้งานจริง Firebase App Hostingจะเชื่อมโยง Buildpack หลายรายการเพื่อดำเนินการสร้างให้เสร็จสมบูรณ์
- Buildpack รันไทม์: ตรวจสอบว่ามีคอมโพเนนต์ที่จำเป็นทั้งหมดสำหรับการเรียกใช้แอปพลิเคชัน Node.js พื้นฐานและติดตั้งทรัพยากร Dependency
- Buildpack ของ Monorepo: กำหนดค่า Buildpack ที่ตามมาเพื่อจัดการสถานการณ์ Monorepo ที่แตกต่างกัน
Buildpack ของเฟรมเวิร์ก: ติดตั้งอะแดปเตอร์เฟรมเวิร์กที่ถูกต้อง (เช่น Angular หรือ Next.js) และเตรียม Buildpack ที่ตามมา
อแดปเตอร์เฟรมเวิร์กมีหน้าที่เรียกใช้คำสั่งการสร้างเวอร์ชันที่ใช้งานจริง และแมปค่าการกำหนดค่าที่เกี่ยวข้องเฉพาะเฟรมเวิร์กกับ รูปแบบมาตรฐานที่อ่านได้โดย App Hosting
Buildpack ของ Package Manager: ดำเนินการติดตั้งทรัพยากร Dependency และ สร้างแอปโดยใช้ npm, yarn หรือ pnpm
Output Bundle Buildpack: กำหนดคำสั่งเรียกใช้และเตรียมเอาต์พุต Bundle สำหรับการดำเนินการ
ขั้นตอนการส่งต่อ
ขั้นตอนสุดท้ายนี้จะแพ็กเกจข้อมูลทั้งหมดที่ดึงมาจากซอร์สโค้ดของแอปพลิเคชัน รวมถึงอิมเมจคอนเทนเนอร์บิลด์ แล้วส่งไปยังแบ็กเอนด์ของ App Hosting จากนั้นApp Hostingแบ็กเอนด์จะใช้ข้อมูลนี้เพื่อตั้งค่า Cloud Runด้วยการกำหนดค่าที่เหมาะสม
ดูข้อมูลเพิ่มเติม
กระบวนการสร้าง App Hosting ทั้งหมดเป็นโอเพนซอร์ส
- โค้ด Buildpack อยู่ในที่เก็บ Buildpack ของ Google Cloud
- โค้ดสำหรับอแดปเตอร์เฟรมเวิร์กอยู่ในที่เก็บ firebase-framework-tools
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Cloud Native Buildpack และ Cloud Build