ASP.NET Core 應(yīng)用如何運(yùn)行在 Linux (以下以u(píng)buntu 14.04為例)平臺(tái)上,首先要確保按照 官方指導(dǎo) 安裝 .NET Core 運(yùn)行環(huán)境。然后按照以下幾種步驟發(fā)布并運(yùn)行應(yīng)用。
一、復(fù)制發(fā)布
- 使用命令
dotnet publish -c release發(fā)布項(xiàng)目到默認(rèn)文件夾 - 通過 xftp 5 或其他工具將該文件夾所有內(nèi)容上傳到 linux 服務(wù)器指定目錄
- 通過 xshell 5 ssh登錄到linux服務(wù)器,切換到程序目錄,執(zhí)行
dotnet demo.dll即可在終端運(yùn)行程序,如果希望程序后臺(tái)運(yùn)行使用以下命令sudo nohup dotnet demo.dll,也可以使用第三方進(jìn)程管理工具(supervisor等)來管理 ASP.NET Core 應(yīng)用的啟動(dòng)。
二、容器發(fā)布
- 在 docker hub 上創(chuàng)建賬號(hào),并創(chuàng)建一個(gè)項(xiàng)目庫 demo
- 在 ASP.NET Core 項(xiàng)目根目錄下創(chuàng)建dockerfile文件如下:
FROM microsoft/dotnet
MAINTAINER "yourname" yourname@gmail.com
WORKDIR /root/
USER root
COPY ./bin/release/netcoreapp1.0/publish/ /root/
EXPOSE 3723/tcp
CMD dotnet demo.dll
- 在開發(fā)機(jī)windows上安裝 docker for windows
- 啟動(dòng) powershell 并切換到項(xiàng)目目錄,以此執(zhí)行以下命令:
docker login #登錄到docker registry以便稍后發(fā)布image到官方hub上。
docker build -t yourname/demo:v1.0.0 . #創(chuàng)建image
docker push yourname/demo:v1.0.0 #將本地構(gòu)建的image推送到官方registry上
- 在 ubutntu 服務(wù)器上執(zhí)行命令
docker run -it -p 3723:3723/tcp yourname/demo:v1.0.0
即可運(yùn)行包含該應(yīng)用的容器,使用命令docker logs container-id查看容器中的日志消息。一切順利的話,demo程序?qū)㈦S著容器運(yùn)行起來了,
總結(jié)
使用容器運(yùn)行的好處顯而易見,每次開發(fā)完成新的版本都提交到registry上(如果是企業(yè)開發(fā)可以自己搭建專屬的私有倉庫),運(yùn)維人員值需要在生產(chǎn)環(huán)境執(zhí)行一條 docker run ... 命令即可開始部署。從此不再需要以往的無盡的打包,壓縮,發(fā)送,接收,解包,配置,啟動(dòng),錯(cuò)誤,重新配置的噩夢模式。
面對(duì)任何新的技術(shù),我們都應(yīng)該以一種積極正面的態(tài)度來學(xué)習(xí)和接納,因?yàn)閺臍v史的角度來看,任何新的技術(shù)都是因?yàn)榻鉀Q某個(gè)特定問題而出現(xiàn)的,而我們可能正在面對(duì)這樣的問題,同時(shí)它能極大地提高我們的工作效率。