本篇內(nèi)容介紹了“Linux下開發(fā)與部署ASP.NET 5的過程”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設與網(wǎng)絡營銷,包括做網(wǎng)站、網(wǎng)站建設、SEO優(yōu)化、網(wǎng)絡推廣、整站優(yōu)化營銷策劃推廣、電子商務、移動互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應用定制及解決方案,創(chuàng)新互聯(lián)核心團隊10多年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗,為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設服務,在網(wǎng)站建設行業(yè)內(nèi)樹立了良好口碑。
1.概述
先概述一下實踐環(huán)境及使用工具-----》
操作系統(tǒng):ubuntu-15.04(32位桌面版)【強烈建議你玩64位版】
開發(fā)工具:vscode 0.9.1(Linux下32位版)
開發(fā)輔助工具:generator-aspnet(創(chuàng)建ASP.NET5項目或文件模板;依賴yo工具)
開發(fā)輔助工具:dnvm(PowerShell腳本;.NET程序運行環(huán)境管理工具;借助nuget )
開發(fā)輔助工具:npm(前端開發(fā)必備的工具啦)
依賴環(huán)境:dnx-mono 1.0.0-beta8(mono版的.NET運行時,含dnu,dnx工具)
依賴環(huán)境:mono jit(編譯器;如使用dnx-coreclr-linux-x64,此編譯器可以不需要)
依賴環(huán)境:libuv(運行平臺支持庫)
部署方式:自托管(selfhost;dnx commands執(zhí)行)
部署方式:容器運行托管(使用docker虛擬化技術)
(下面 $: 表示終端命令符下;#:表示在docker容器/bin/bash下執(zhí)行)
2.vscode
下載和文檔參見https://code.visualstudio.com
瀏覽器下載或者終端下的工具:
$: wget x.zip下載地址
解壓:
$: unzip -n x.zip -d /指定目錄
目錄下Code文件就是執(zhí)行文件,可以直接運行。
如在終端任意路徑下調(diào)出vscode運行,要設置成全局命令,也就是創(chuàng)建鏈接。
$: sudo ln -s /絕對路徑/Code /usr/local/bin/code
$: code . (在當前路徑目錄打開vscode)
3.dnvm
文檔參見https://docs.asp.net
可能需要安裝解壓和下載工具:
$: sudo apt-get install unzip curl
下載sh安裝及設置腳本:
$: curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
查看幫助:
$: dnvm -h
查看clr列表:
$: dnvm list
4.dnx-mono
安裝dnx所需環(huán)境:
$: sudo apt-get install libunwind8 gettext libssl-dev libcurl3-dev zlib1g libicu-dev
如果你想安裝dnx-coreclr-linux-x64:
$: dnvm upgrade -r coreclr
俺這里只能安裝dnx-mono:
$: dnvm upgrade -r mono
5.mono jit
文檔參見http://www.mono-project.com
添加mono項目簽名密鑰到系統(tǒng)的軟件包存儲庫:
$: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
$: echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
更新系統(tǒng)的軟件包存儲庫表:
$: sudo apt-get update
安裝完整版的mono jit:
$: sudo apt-get install mono-complete
查看版本:
$: mono -V(大寫)
6.libuv
文檔參見http://docs.libuv.org
下載最新版http://dist.libuv.org/dist/v1.7.5
安裝所需環(huán)境:
$: sudo apt-get install automake libtool
進入解壓后的目錄, 執(zhí)行命令腳本:
$: sh autogen.sh
檢查或設置編譯環(huán)境:
$:./configure
編譯:
$: make
安裝編譯后程序:
$: sudo make install
配置開啟:
$: ldconfig
7.npm
參見https://nodejs.org
參見https://www.npmjs.com
npm依賴在nodejs中,安裝nodejs即可。
如果采用官方編譯好的版本,需要設置成一下全局命令。
這里采用源碼編譯安裝。
下載源碼https://nodejs.org/dist/v4.1.2/node-v4.1.2.tar.gz
進入解壓后目錄,檢查和設置編譯環(huán)境:
$: ./configure
編譯:
$: make
安裝編譯后程序:
$: sudo make install
8.generator-aspnet
查看文檔https://github.com/OmniSharp/generator-aspnet
安裝yo:
$: sudo npm install -g yo
使用yo:
$: yo
安裝generator-aspnet:
$: sudo npm install -g generator-aspnet
使用generator-aspnet:
$: yo aspnet
9.demo
以上準備完畢,就可以嗨啦。
你可以使用generator-aspnet快速創(chuàng)建一個ASP.NET5項目或文件;
用vscode工具來編寫代碼;
靈活使用dnvm(dnu,dnx)來打理運行環(huán)境和程序包。
關于前端開發(fā),你可以結(jié)合npm工具。
這里,從官方下載demo。
先安裝git工具:
$: sudo apt-get install git
克隆下載:
$: git clone https://github.com/aspnet/Home.git aspnet-home
進入項目根目錄(project.json所在路徑),下載項目依賴安裝包:
$: dnu restore (這一步要保證完整下載哦?。?/p>
查看project.json中的commands配置:
$: code . (打開項目看)
執(zhí)行程序:
$: dnx commands
(如commands配置 "web": "...",就執(zhí)行dnx web)
10.docker
參見https://www.docker.com
如果系統(tǒng)是64位,參見官方使用sh腳本方式安裝即可。
不管系統(tǒng)是32位,還是64位,都可以采用源碼編譯方式安裝(俺目前沒體驗過)。
這里只好使用ubuntu軟件倉庫已經(jīng)自帶的。
安裝docker:
$: sudo apt-get install docker.io
查看版本:
$: docker -v
運行別的,需要啟動docker服務:
$: service docker start
注:學習docker需要明白鏡像,容器,倉庫的三大核心概念,請另行腦補!
查看鏡像:
$: sudo docker images
查找鏡像:
$: sudo docker search ubuntu-x86
官方提供的鏡像幾乎都是64位的,我得找x86 32位版的,比較悲催啦!
這樣查找到的,也可能不合適,下載($: sudo docker pull ubuntu)也慢!
可以去https://download.openvz.org/template/precreated 下載模板。
導入模板:
$: cat x.tar.gz | sudo docker import - ubuntu:latest
然后運行鏡像到容器,并進入容器:
$: sudo docker run -t -i ubuntu:latest /bin/bash
進入容器后,可以照前面的步驟安裝dnvm,dnx-mono,mono jit,libuv既可。
安裝完畢后,退出容器:
#:exit
然后一定要記得提交,保存成新的鏡像:
$: sudo docker commit -m '提交消息' -a '作者信息' 要提交的容器id 新的鏡像名
這個新的鏡像,你可以運行到容器……
我們再保存出鏡像:
$: sudo docker save -o xx.tar 要保存那個鏡像的名稱
如果你需要載入這個保存的xx.tar:
$: sudo docker load --input xx.tar
找個ASP.NET5 Web項目,在其根目錄添加Dockerfile文件,其代碼格式:
#這個使用官方鏡像 #FROM microsoft/aspnet:1.0.0-beta8 #自己制作,載入的鏡像 FROM ubuntu/aspnet5 #復制當前目錄所有文件到鏡像(容器)根目錄/app目錄下 COPY . /app/ #容器運行的工作目錄,也就是/bin/bash 運行后的目錄是app/# WORKDIR /app #執(zhí)行dnu restore RUN ["dnu", "restore"] #開放的端口 EXPOSE 5004#dnx web執(zhí)行 ENTRYPOINT ["dnx", "-p", "project.json", "web"]
然后根據(jù)Dockerfile配置來創(chuàng)建鏡像,并運行容器:
$: sudo docker build -t myweb .
(myapp:生成新的鏡像名; .:Dockerfile文件在當前目錄)
在宿主機如何瀏覽運行在容器中的web程序? 可以采用映射端口:
$: docker run -t -d -p 5000:5004 myweb
這里宿主機瀏覽器打開http://localhost:5000即可。
“Linux下開發(fā)與部署ASP.NET 5的過程”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!