Add Docker support to application
โดยปกติ Project Blazor ที่สร้างขึ้นถ้าไม่ได้เลือก Enabled Docker ตั้งแต่ตอนสร้างโปรเจค หรือเป็นโปรเจคที่มีอยู่แล้ว ต้องการปรับให้โปรเจครองรับการ Deploy ด้วย Docker โดยการ
- คลิกขวา ที่โปรเจคที่ต้องการจะ Publish ด้วย Docker
- เลือก
Add
>Docker Support
- เลือก
Linux
หลังจาก Add docker support แล้ว Visual Studio จะทำการสร้างไฟล์ชื่อ Dockerfile
ขึ้นมาภายในโปรเจค
Dockerfile
เนื้อหาภายในจะเป็นลำดับขั้นตอนการสร้าง container และคำสั่งจะเกี่ยวข้องกับ specification ของ application เช่น .NET SDK version เป็นต้น Dockerfile พื้นฐานสำหรับ .NET จะประกอบไปด้วย 4 ขั้นตอนหลักดังนี้
-
ขั้นตอนการเตรียม SDK (บรรทัดที่ 1-4) ขั้นตอนนี้ Docker จะทราบว่าจะต้องไปดาว์นโหลดตัว SDK ของ .NET มาเป็น version 7.0 สำหรับ .NET7 กำหนด directory หลักเป็น
/app
และมีการกำหนดว่า container นี้จะเปิด port 80 และ 443 นั้นก็คือ port http และ https -
ขั้นตอนการ restore และ build .NET project (บรรทัดที่ 6-12) ขั้นตอนนี้ Docker จะนำ SDK ในขั้นตอนที่ 1 มาและมีการจัดเตรียมไฟล์ที่จะต้องถูก build มาที่ folder
/src
ซึ่งจะ build แบบ release mode และ output ออกมาที่/app/build
-
ขั้นตอนการ publish (บรรทีดที่ 14-15) จะมีการอ้างถึงขั้นตอนการ build ให้นำส่วนที่ build แล้วมาเข้าคำสั่ง publish ต่อ ซึ่งก็จะ publish แบบ release และ output ออกมาที่
/app/publish
-
ขั้นตอนสุดท้าย (บรรทัดที่ 17-20) คือการ copy ไฟล์
.dll
ที่ได้จากการ publish มาเก็บไว้ที่/app
และกำหนด Entrypoint หรือจุดเริ่มต้นที่ Docker จะต้องเริ่มทำงาน
ตรวจสอบการอ้างอิงโปรเจคอื่น จะต้องถูก build ด้วย
Dockerfile อาจมีการแก้ไขในภายหลังเพิ่มเติมได้เนื่องจากหากมีการ Reference project อื่นๆเข้ามา จะต้องเพิ่มขั้นตอนการ copy project ปลายทางมา build ด้วยในบรรทัดที่ 8 โดยให้ copy มาที่ /src
ก่อนจะทำการ restore project