在synology NAS用Docker架 .NET 5 MVC網頁(HTTPS)

在synology NAS用Docker架 .NET 5 MVC網頁(HTTPS)

2021, May 21    

最近因為一些需求,買了一台Synology NAS,順便來學習怎麼架MVC網站至NAS

Docker安裝

在Synology 套件管理中心,將Docker安裝

.NET 映像檔下載或匯入

打開Docker,搜尋 .NET CORE,找到如dotnet、aspnetcore下載 但是目前下載的 .net core都是屬於2.0或3.1版本,所以我另外在Docker hub下載 https://hub.docker.com/_/microsoft-dotnet-sdk

將載好的映像檔丟到NAS中,在Docker中選擇從檔案中加入

將剛才載好的映像檔加入Docker中

確認有成功加入

新建並發佈一個 .NET5 MVC網頁,放至NAS

新建一個 .NET5 的MVC專案,並且發佈至資料夾內,如下圖

將發佈的檔案放至NAS中自己指定的路徑

新建容器

選擇新增容器,打上容器名稱

儲存空間頁籤內,選擇新增資料夾,選擇剛剛放檔案的位置

選擇後,容器掛載路徑打入指定路徑,可依照個人喜好輸入,我這裡用/app

port設定,記得防火牆也要同意相關port有開啟

最後進階設定,環境變數ASPNETCORE_URLS 中輸入 http://*:80

建立後立即啟動容器,確認容器已經開啟

點選已啟動容器,點選終端機頁籤,將 .NET 應用啟動

cd app
dotnet familycenter.dll

建立憑證

在NAS中的安全性,選擇憑證並建立憑證,選擇從Let’s Encrypt建立憑證

網域名稱輸入 : familycenter.{Domain}.synology.me

輸入信箱後套用

可以確認憑證已成功建立

反向代理伺服器設定

控制台中搜尋Proxy 並選擇反向代理伺服器頁籤 新增後輸入資料套用

來源

  • 通訊協定: HTTPS
  • 主機名稱: familycenter.{Domain}.synology.me
  • Port: 443

目的地

  • 通訊協定: HTTP
  • 主機名稱: localhost
  • Port: 2266

連結Mapping

回到憑證,選擇剛建立好的憑證,將連結Mapping

瀏覽器輸入網址

https://familycenter.{Domain}.synology.me/

就可以用HTTPS開啟網頁了