Firebase App Hosting ใช้ Cloud Build เพื่อแปลงซอร์สโค้ดของแอปพลิเคชัน เป็นรูปแบบคอนเทนเนอร์ที่เหมาะสำหรับการทำให้ใช้งานได้ใน Cloud Run
กระบวนการบิลด์จะดำเนินการผ่านขั้นตอนสำคัญต่อไปนี้
ubuntu: การเริ่มต้น Workspace
preparer: รวบรวมซอร์สโค้ดและการกำหนดค่าของแอปพลิเคชัน
pre-buildpack: เตรียมสภาพแวดล้อม buildpack
build: ติดตั้งการอ้างอิงและสร้างแอปพลิเคชัน
publisher: ทำให้คอนเทนเนอร์สำหรับการใช้งานจริงเสร็จสมบูรณ์Cloud Run
ขั้นตอนทั้ง 5 นี้สอดคล้องกับขั้นตอนบิลด์ที่แสดงใน Cloud Build ในคอนโซลGoogle Cloud โดยตรง

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