メインコンテンツへスキップ
記事一覧へ戻る

Build Secrets ส่งคีย์เข้าขั้นสร้างอิมเมจโดยไม่ฝังใน layer

Docker Build Secrets ส่งข้อมูลลับให้คำสั่งระหว่าง build โดยไม่เก็บเป็นค่าถาวรในอิมเมจ อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

Build Secrets ส่งคีย์เข้าขั้นสร้างอิมเมจโดยไม่ฝังใน layer

Docker Build Secrets ส่งข้อมูลลับให้คำสั่งระหว่าง build โดยไม่เก็บเป็นค่าถาวรในอิมเมจ เหมาะกับการดาวน์โหลดแพ็กเกจจาก registry ส่วนตัวหรือดึง dependency ที่ต้องยืนยันตัวตน บทความนี้สรุปแนวคิดจากเอกสารทางการของ Docker และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

Docker แยกแอปและ dependency ไว้ในคอนเทนเนอร์ การใช้งานจริงต้องดูทั้งอิมเมจ สิทธิ์ เครือข่าย และข้อมูลที่ต้องอยู่ต่อหลังคอนเทนเนอร์ถูกแทนที่

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: Docker Build Secrets ส่งข้อมูลลับให้คำสั่งระหว่าง build โดยไม่เก็บเป็นค่าถาวรในอิมเมจ จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

BuildKit mount ความลับเฉพาะ RUN ที่ต้องใช้ แล้วนำออกเมื่อขั้นตอนนั้นจบ

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

เหมาะกับงานแบบไหน

เหมาะกับการดาวน์โหลดแพ็กเกจจาก registry ส่วนตัวหรือดึง dependency ที่ต้องยืนยันตัวตน

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

ขั้นตอนนำไปใช้

  1. ตรวจอิมเมจและ Compose configuration ที่จะใช้จริง
  2. ทดสอบการสร้างคอนเทนเนอร์ใหม่ รวมถึง mount, network และ healthcheck
  3. บันทึกวิธีย้อนเวอร์ชันอิมเมจและกู้ข้อมูลจาก Volume

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

อย่าใส่ token ใน ARG, ENV หรือ COPY เพราะอาจตกค้างใน metadata และ layer ของอิมเมจ

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

Docker Build Secrets ส่งข้อมูลลับให้คำสั่งระหว่าง build โดยไม่เก็บเป็นค่าถาวรในอิมเมจ เหมาะกับการดาวน์โหลดแพ็กเกจจาก registry ส่วนตัวหรือดึง dependency ที่ต้องยืนยันตัวตน ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ Docker