สร้าง .NET 5.0 Web API Project แล้วจับยัดลง Docker กันเถอะ
เพิ่งปล่อยออกมาให้ใช้กันสด ๆ ร้อน ๆ สำหรับ .NET 5.0 นะครับ ซึ่งไฮไลท์ของมันมีเยอะแยะมากมาย เช่น Performance ต่าง ๆ ที่ดีขึ้น หรือไม่ว่าจะเป็นการซัพพอร์ตกับฮาร์ดแวร์ต่าง ๆ นะครับ วันนี้เลยจะมาลองสร้างโปรเจค .NET 5.0 กัน แล้วลองจับมันยัดลงไปใน Docker กันดูครับ
เตรียมพร้อมก่อนเริ่ม Project
เรามาติดตั้ง tools ที่ใช้กันก่อนเลยครับ
อันแรกคือพระเอกของเราเลย .NET 5.0 ไปโหลดกันได้เลยที่ https://dotnet.microsoft.com/download/dotnet/5.0
ต่อมาเราจะมาสร้าง Project กันบน Visual Studio 2019 ถ้าใครยังไม่มีก็ไปโหลดกันได้เลย https://visualstudio.microsoft.com/
เริ่มสร้าง Project กัน
เปิด VS 2019 ขึ้นมาเลยครับ เลือกเป็น Create a new project
เลือกไปที่ ASP.NET Core Web Application เลยครับ

ใส่รายละเอียดพวกชื่อ, path ของ Projectเลยครับ

อันนี้ผมจะสร้างเป็น Web API ธรรมดานะครับ ก็เลือกที่ Web API ได้เลย อย่าลืมเลือกไปที่ ASP.NET Core 5.0 นะครับ ****สำหรับคนที่ไม่มีให้เลือก ให้อัพเดท VS 2019 ให้เป็นเวอร์ชั่นตั้งแต่ 16.8.0 ขึ้นไปนะครับ ****

รอ Project สร้างเสร็จแล้วก็ลองรันดูได้เลยครับ อันนี้ในตัวอย่างผมจะใช้ API ที่ได้มาพร้อมกับ Project เลยนะครับ ซึ่งจะมาจาก WeatherForecastController นั่นเอง

เรียบร้อยแล้วครับกับการสร้าง Project .NET 5.0 ของเรา จะเห็นได้ว่าแทบจะไม่ต่างกับเวอร์ชั่นก่อน ๆ เลย ไม่ยากเลยครับ ต่อไปเราจะมาลองจับ Project ของเรายัดลงไปใน Docker กันครับ
มาจับ Project .NET 5.0 ของเราไปใส่ใน Docker กัน
ขั้นตอนนี้ผมจะย้ายมาทำใน vs code นะครับ เพราะผมถนัดใช้เทอร์มินอลในนี้มากว่า (ฮ่าๆ) แต่ใครจะใช้ vs 2019 ก็ได้เหมือนกันนะครับ แล้วแต่ความมถนัดเลย
มาเริ่มเลยครับ สร้าง Dockerfile ขึ้นมาก่อนเลย

จากนั้นเอาโค้ดนี้ไปวางได้เลยครับ อย่าลืมมแก้ชื่อ Project ตัวเองแล้วกดเซฟด้วยนะครับ
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env
WORKDIR /app COPY *.csproj ./
RUN dotnet restore COPY . ./
RUN dotnet publish -c Release -o out FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
EXPOSE 80
COPY --from=build-env /app/out .
ENTRYPOINT [ "dotnet","net5api.dll" ]
ตัว sdk กับตัว aspnet อันนี้ผมคิดว่าน่าจะเป็นตัวล่าสุด ณ ตอนนี้ เพราะผมเพิ่งเห็นมีการอัพเดทใน Docker Hub เมื่อไม่นานมานี้เอง จึงเอามาลองเล่นดู ซึ่งโค้ดชุดนี้จะเป็นการทำตั้งแต่ build project ไปจน publish เลยครับ
เสร็จแล้วอย่ารอช้าครับ build docker โลดดดด
docker build -t net5api -f Dockerfile เท่านี้เราก็จะได้ docker image ของ Project เรามาแล้ววววว 🎉

ต่อไปมาลอง run container กันดูครับว่าโปรเจคเราใช้ได้จริงหรือเปล่า โดยอันนี้ผมจะขอชี้ไปที่ port 5000 นะครับ พอดี port 80 ผมติดอย่างอื่นอยู่
docker run -p 5000:80 net5api ลองเข้าดูเลยครับ localhost:5000/WeatherForecast

มาแล้วววววววว ✨ เป็นยังไงครับ ง่ายมาก ๆ เลย สามารถเอาไปปรับใช้กับโปรเจคของตัวเองได้นะครับ
ในเรื่องของ docker เองผมเองก็เพิ่งศึกษาได้ไม่นานอาจจะมีผิดพลาดหรือไม่ครอบคลุมบ้างในบางอย่าง ก็ขออภัยเอาไว้ล่วงหน้าเลยนะครับ 🙏 และหวังว่าบทความนี้จะเป็นเกร็ดความรู้ให้ผู้อ่านไม่มากก็น้อยครับนะครับ
ยังไงหากชื่นชอบก็กด Clap กับ Follow ได้นะคร้าบบบบบ 😁
