Deploy .NET Core 2.0 Web App

จะ Deploy RESTful API web app ที่เขียนด้วย .NET Core บน OSX ลงบน Server ที่เป็น CentOS 7.0 ด้วยวิธี Manual คิดไว้แบบนี้

  • build ด้วย release profile ก่อน
  • pack ทุกอย่างเข้าด้วยกัน
  • transfer ไปที่ server
  • deploy
  • start service

Build ด้วย Release Profile

ใน dotnet ตอน build เพื่อเอาไป deploy ใช้คำสั่ง dotnet publish และกำหนด profile ได้ด้วย option -c รวมถึงกำหนด target os ได้ด้วย option -r ดังนั้นตอน build Release ไปลงบน CentOS ก็ให้สั่ง

dotnet publish -c Release -r linux-x64

จากคำสั่งด้านบน จะได้ published output อยู่ที่ /bin/Release/netcoreapp2.0/linux-x64/publish

Pack ของเข้าด้วยกัน

วิธี pack ของใน folder ให้เข้าไปใน folder /bin/Release/netcoreapp2.0/linux-x64/publish เสร็จแล้วสามารถใช้คำสั่ง tar เพื่อสร้าง .tar.gz ได้เลย

tar vzfc app.tar.gz .

จากคำสั่งด้านบน เราจะได้ไฟล์ app.tar.gz อยู่ใน path /bin/Release/netcoreapp2.0/linux-x64/publish

Transfer ไปที่  Server

วิธีง่ายสุดคือ scp ของที่จะ deploy ไป

scp app.tar.gz <server_host>:/tmp

จากคำสั่งด้านบน จะเป็นการ transfer app.tar.gz ไปไว้ที่ /tmp บน <server_host>

Deploy

ที่เหลือก็ย้ายไฟล์จาก /tmp ไปไว้ที่ต้องการ เสร็จแล้วแตกไฟล์

tar xvfz app.tar.gz -C <output_folder>

Start Service

สั่ง Run Service แบบ background ด้วยคำสั่ง

dotnet <service>.dll &

พอได้ Step คร่าว ๆ ทั้งหมด ก็น่าจะเอาไปแปลงเป็น Deployment script ใน Jenkins ได้ละ

Leave a Reply