將 ASP.NET Core MVC 網站佈署在 Synology NAS

看到標題不要誤會,基本上這篇要講的不是把 ASP.NET Core MVC 網站直接在 Synology NAS 作業系統上直接執行,而是要透過它的 Docker 套件來執行。所以在往下看之前,請先確認手邊的 NAS 有沒有支援 Docker,機種列表請參考這個連結

下列是我的開發及測試環境。
作業系統:Mac OS X
開發工具:Visual Studio for Mac
測試用 NAS:Synology 916+

在新建網站之前,先到 NAS 上新增一個共用資料夾。

接下來透過 Visual Studio 新增一個 ASP.NET Core MVC 網站。

版本選擇 2.0。

名稱取為"NASDemoSite"。

之後編譯網站後要發佈網站,由於目前 Visual Studio for Mac 在 publish 的選項只有 Azure 一個,沒有其它選項,所以這部份只能透過指令來達成,如下圖

之後到專案底下的資料夾,可以看到已經發佈的檔案,之後這些都要複製到 NAS 上的資料夾。

之後透過區網進到 NAS 的 DockerImages 資料夾,並新增 myapp 資料夾,然後將剛剛的檔案全部複製過去,並且再新增一個 Dockerfile 檔案。

Dockerfile 檔案的內容如下:

FROM microsoft/aspnetcore
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "NASDemoSite.dll"]

裡面的內容主要是,在建置 image 檔時要將資料夾內所有的檔案複製進 /app 裡,而在啟動容器時要執行 dotnet NASDemoSite.dll 這行指令

接下來就是建置 image 檔案,請執行下列指令:

docker build -t myapp .

然後建立容器並啟動它:

docker run -d --name aspnetapp -p 4000:80 myapp

成功啟動後,就可以透過 NAS 的 port 4000 成功連到 ASP.NET Core MVC 網站。

參考資料

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s