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

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

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

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

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

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

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

  5. ผู้เผยแพร่โฆษณา: สรุปCloud Runคอนเทนเนอร์การผลิต

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

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

การเริ่มต้นใช้งาน Workspace

ขั้นตอนนี้สอดคล้องกับขั้นตอนการสร้าง Ubuntu ซึ่งจะเริ่มต้นพื้นที่ทํางานของบิลด์เพื่อให้มั่นใจว่าได้ตั้งค่าสิทธิ์ของไฟล์ที่ถูกต้อง สําหรับไดเรกทอรีที่ขั้นตอนการบิลด์ถัดไปใช้

ผู้จัดทำ

ขั้นตอนนี้มีหน้าที่จัดการตรรกะก่อนการสร้าง อ่าน ล้างข้อมูล และ เขียนตัวแปรสภาพแวดล้อมที่กำหนดโดยผู้ใช้ นอกจากนี้ ยังยกเลิกการอ้างอิงและปักหมุด Secret ที่ระบุไว้ในไฟล์ apphosting.yaml ด้วย

Pre-buildpack

ขั้นตอนนี้จะเตรียมสภาพแวดล้อมสำหรับวงจรของ Cloud Native Buildpacks ซึ่งรวมถึงการเรียกใช้ Shim ที่แปลการกำหนดค่าและตัวแปรสภาพแวดล้อม ที่เตรียมไว้ในขั้นตอนก่อนหน้า เป็นรูปแบบที่เครื่องมือ CNB คาดหวัง

บิลด์

ซึ่งเป็นหัวใจสำคัญของกระบวนการบิลด์ มีหน้าที่สร้างอิมเมจคอนเทนเนอร์ที่เรียกใช้ได้และไฟล์ bundle.yaml ที่กำหนดค่าบิลด์ โดยใช้ Cloud Native Buildpacks และไบนารีเครื่องมือสร้างวงจร เพื่อแพ็กเกจแอปพลิเคชันอย่างมีประสิทธิภาพ ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ bundle.yaml ได้ที่ github

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

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

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

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

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

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

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

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

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