กระบวนการบิลด์ App Hosting

Firebase App Hosting ใช้ Cloud Build เพื่อแปลงซอร์สโค้ดของแอปพลิเคชัน เป็นรูปแบบคอนเทนเนอร์ที่เหมาะสำหรับการทำให้ใช้งานได้ใน Cloud Run

กระบวนการบิลด์จะดำเนินการผ่านขั้นตอนสำคัญต่อไปนี้

  1. ubuntu: การเริ่มต้น Workspace

  2. preparer: รวบรวมซอร์สโค้ดและการกำหนดค่าของแอปพลิเคชัน

  3. pre-buildpack: เตรียมสภาพแวดล้อม buildpack

  4. build: ติดตั้งการอ้างอิงและสร้างแอปพลิเคชัน

  5. publisher: ทำให้คอนเทนเนอร์สำหรับการใช้งานจริงเสร็จสมบูรณ์Cloud Run

ขั้นตอนทั้ง 5 นี้สอดคล้องกับขั้นตอนบิลด์ที่แสดงใน Cloud Build ในคอนโซลGoogle Cloud โดยตรง

ภาพหน้าจอของมุมมองคอนโซล Google Cloud ของขั้นตอน Cloud Build

การเริ่มต้น 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 หลายรายการเข้าด้วยกันเพื่อดำเนินการกระบวนการบิลด์ให้เสร็จสมบูรณ์

  1. Runtime Buildpack: ตรวจสอบว่ามีคอมโพเนนต์ที่จำเป็นทั้งหมดสำหรับการเรียกใช้แอปพลิเคชัน Node.js พื้นฐาน และติดตั้งการอ้างอิง
  2. Monorepo Buildpack: กำหนดค่า buildpack ในภายหลังเพื่อจัดการสถานการณ์ monorepo ที่แตกต่างกัน
  3. Framework Buildpack: ติดตั้งอะแดปเตอร์เฟรมเวิร์กที่ถูกต้อง (เช่น Angular หรือ Next.js) และเตรียม buildpack ในภายหลัง

    อะแดปเตอร์เฟรมเวิร์กมีหน้าที่เรียกใช้คำสั่งบิลด์ที่พร้อมใช้งานจริง และแมปค่ากำหนดค่าที่เกี่ยวข้องกับเฟรมเวิร์กโดยเฉพาะกับ รูปแบบมาตรฐานที่ App Hosting อ่านได้

  4. Package Manager Buildpack: ดำเนินการติดตั้งการอ้างอิงและ สร้างแอปโดยใช้ npm, yarn หรือ pnpm

  5. Output Bundle Buildpack: กำหนดคำสั่งเรียกใช้และเตรียมบันเดิลเอาต์พุตสำหรับการดำเนินการ

ผู้เผยแพร่โฆษณา

ขั้นสุดท้ายนี้จะแพ็กเกจข้อมูลทั้งหมดที่แยกออกมาจากซอร์สโค้ดของแอปพลิเคชัน รวมถึงอิมเมจคอนเทนเนอร์บิลด์ แล้วส่งไปยังApp Hosting แบ็กเอนด์ จากนั้นแบ็กเอนด์ App Hosting จะใช้ข้อมูลนี้เพื่อตั้งค่า Cloud Run ด้วยการกำหนดค่าที่เหมาะสม

ดูข้อมูลเพิ่มเติม

กระบวนการบิลด์ App Hosting ทั้งหมดเป็นโอเพนซอร์ส