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 เชื่อมต่อบิลด์แพ็กหลายรายการเข้าด้วยกันเพื่อดำเนินการตามกระบวนการบิลด์ให้เสร็จสมบูรณ์
- Runtime Buildpack: ตรวจสอบว่ามีคอมโพเนนต์ที่จำเป็นทั้งหมดสําหรับการเรียกใช้แอปพลิเคชัน Node.js พื้นฐานและติดตั้ง Dependency แล้ว
- Monorepo Buildpack: กําหนดค่า Buildpack รายการถัดไปตามสถานการณ์ Monorepo ที่ต่างกัน
Buildpack เฟรมเวิร์ก: ติดตั้งอะแดปเตอร์เฟรมเวิร์กที่เหมาะสม (เช่น Angular หรือ Next.js) และเตรียม Buildpack รายการถัดไป
อะแดปเตอร์เฟรมเวิร์กมีหน้าที่รับผิดชอบในการใช้คำสั่งบิลด์เวอร์ชันที่ใช้งานจริงและการแมปค่าการกําหนดค่าเฉพาะเฟรมเวิร์กที่เกี่ยวข้องไปยังรูปแบบมาตรฐานที่ App Hosting อ่านได้
Package Manager Buildpack: ดำเนินการติดตั้ง Dependency และสร้างแอปโดยใช้ npm, yarn หรือ pnpm
Output Bundle Buildpack: กำหนดคำสั่ง run และเตรียมแพ็กเกจเอาต์พุตสําหรับการดําเนินการ
ระยะการส่งต่อ
ระยะสุดท้ายนี้จะแพ็กเกจข้อมูลทั้งหมดที่ดึงมาจากซอร์สโค้ดของแอปพลิเคชัน รวมถึงอิมเมจคอนเทนเนอร์การสร้าง แล้วส่งไปยังแบ็กเอนด์ App Hosting จากนั้นแบ็กเอนด์ App Hosting จะใช้ข้อมูลนี้เพื่อตั้งค่า Cloud Run ด้วยการกําหนดค่าที่เหมาะสม
ดูข้อมูลเพิ่มเติม
กระบวนการสร้าง App Hosting ทั้งหมดเป็นแบบโอเพนซอร์ส
- โค้ดของบิลด์แพ็กอยู่ในที่เก็บบิลด์แพ็กของ Google Cloud
- โค้ดสำหรับอะแดปเตอร์เฟรมเวิร์กอยู่ใน firebase-framework-tools repo
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Cloud Native Buildpacks และ Cloud Build