您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Linux下開發(fā)與部署ASP.NET 5的過程”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
1.概述
先概述一下實(shí)踐環(huán)境及使用工具-----》
操作系統(tǒng):ubuntu-15.04(32位桌面版)【強(qiáng)烈建議你玩64位版】
開發(fā)工具:vscode 0.9.1(Linux下32位版)
開發(fā)輔助工具:generator-aspnet(創(chuàng)建ASP.NET5項(xiàng)目或文件模板;依賴yo工具)
開發(fā)輔助工具:dnvm(PowerShell腳本;.NET程序運(yùn)行環(huán)境管理工具;借助nuget )
開發(fā)輔助工具:npm(前端開發(fā)必備的工具啦)
依賴環(huán)境:dnx-mono 1.0.0-beta8(mono版的.NET運(yùn)行時(shí),含dnu,dnx工具)
依賴環(huán)境:mono jit(編譯器;如使用dnx-coreclr-linux-x64,此編譯器可以不需要)
依賴環(huán)境:libuv(運(yùn)行平臺(tái)支持庫(kù))
部署方式:自托管(selfhost;dnx commands執(zhí)行)
部署方式:容器運(yùn)行托管(使用docker虛擬化技術(shù))
(下面 $: 表示終端命令符下;#:表示在docker容器/bin/bash下執(zhí)行)
2.vscode
下載和文檔參見https://code.visualstudio.com
瀏覽器下載或者終端下的工具:
$: wget x.zip下載地址
解壓:
$: unzip -n x.zip -d /指定目錄
目錄下Code文件就是執(zhí)行文件,可以直接運(yùn)行。
如在終端任意路徑下調(diào)出vscode運(yùn)行,要設(shè)置成全局命令,也就是創(chuàng)建鏈接。
$: sudo ln -s /絕對(duì)路徑/Code /usr/local/bin/code
$: code . (在當(dāng)前路徑目錄打開vscode)
3.dnvm
文檔參見https://docs.asp.net
可能需要安裝解壓和下載工具:
$: sudo apt-get install unzip curl
下載sh安裝及設(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項(xiàng)目簽名密鑰到系統(tǒng)的軟件包存儲(chǔ)庫(kù):
$: 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)的軟件包存儲(chǔ)庫(kù)表:
$: 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
進(jìn)入解壓后的目錄, 執(zhí)行命令腳本:
$: sh autogen.sh
檢查或設(shè)置編譯環(huán)境:
$:./configure
編譯:
$: make
安裝編譯后程序:
$: sudo make install
配置開啟:
$: ldconfig
7.npm
參見https://nodejs.org
參見https://www.npmjs.com
npm依賴在nodejs中,安裝nodejs即可。
如果采用官方編譯好的版本,需要設(shè)置成一下全局命令。
這里采用源碼編譯安裝。
下載源碼https://nodejs.org/dist/v4.1.2/node-v4.1.2.tar.gz
進(jìn)入解壓后目錄,檢查和設(shè)置編譯環(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
以上準(zhǔn)備完畢,就可以嗨啦。
你可以使用generator-aspnet快速創(chuàng)建一個(gè)ASP.NET5項(xiàng)目或文件;
用vscode工具來編寫代碼;
靈活使用dnvm(dnu,dnx)來打理運(yùn)行環(huán)境和程序包。
關(guān)于前端開發(fā),你可以結(jié)合npm工具。
這里,從官方下載demo。
先安裝git工具:
$: sudo apt-get install git
克隆下載:
$: git clone https://github.com/aspnet/Home.git aspnet-home
進(jìn)入項(xiàng)目根目錄(project.json所在路徑),下載項(xiàng)目依賴安裝包:
$: dnu restore (這一步要保證完整下載哦?。?/p>
查看project.json中的commands配置:
$: code . (打開項(xiàng)目看)
執(zhí)行程序:
$: dnx commands
(如commands配置 "web": "...",就執(zhí)行dnx web)
10.docker
參見https://www.docker.com
如果系統(tǒng)是64位,參見官方使用sh腳本方式安裝即可。
不管系統(tǒng)是32位,還是64位,都可以采用源碼編譯方式安裝(俺目前沒體驗(yàn)過)。
這里只好使用ubuntu軟件倉(cāng)庫(kù)已經(jīng)自帶的。
安裝docker:
$: sudo apt-get install docker.io
查看版本:
$: docker -v
運(yùn)行別的,需要啟動(dòng)docker服務(wù):
$: service docker start
注:學(xué)習(xí)docker需要明白鏡像,容器,倉(cāng)庫(kù)的三大核心概念,請(qǐng)另行腦補(bǔ)!
查看鏡像:
$: sudo docker images
查找鏡像:
$: sudo docker search ubuntu-x86
官方提供的鏡像幾乎都是64位的,我得找x86 32位版的,比較悲催啦!
這樣查找到的,也可能不合適,下載($: sudo docker pull ubuntu)也慢!
可以去https://download.openvz.org/template/precreated 下載模板。
導(dǎo)入模板:
$: cat x.tar.gz | sudo docker import - ubuntu:latest
然后運(yùn)行鏡像到容器,并進(jìn)入容器:
$: sudo docker run -t -i ubuntu:latest /bin/bash
進(jìn)入容器后,可以照前面的步驟安裝dnvm,dnx-mono,mono jit,libuv既可。
安裝完畢后,退出容器:
#:exit
然后一定要記得提交,保存成新的鏡像:
$: sudo docker commit -m '提交消息' -a '作者信息' 要提交的容器id 新的鏡像名
這個(gè)新的鏡像,你可以運(yùn)行到容器……
我們?cè)俦4娉鲧R像:
$: sudo docker save -o xx.tar 要保存那個(gè)鏡像的名稱
如果你需要載入這個(gè)保存的xx.tar:
$: sudo docker load --input xx.tar
找個(gè)ASP.NET5 Web項(xiàng)目,在其根目錄添加Dockerfile文件,其代碼格式:
#這個(gè)使用官方鏡像 #FROM microsoft/aspnet:1.0.0-beta8 #自己制作,載入的鏡像 FROM ubuntu/aspnet5 #復(fù)制當(dāng)前目錄所有文件到鏡像(容器)根目錄/app目錄下 COPY . /app/ #容器運(yùn)行的工作目錄,也就是/bin/bash 運(yùn)行后的目錄是app/# WORKDIR /app #執(zhí)行dnu restore RUN ["dnu", "restore"] #開放的端口 EXPOSE 5004#dnx web執(zhí)行 ENTRYPOINT ["dnx", "-p", "project.json", "web"]
然后根據(jù)Dockerfile配置來創(chuàng)建鏡像,并運(yùn)行容器:
$: sudo docker build -t myweb .
(myapp:生成新的鏡像名; .:Dockerfile文件在當(dāng)前目錄)
在宿主機(jī)如何瀏覽運(yùn)行在容器中的web程序? 可以采用映射端口:
$: docker run -t -d -p 5000:5004 myweb
這里宿主機(jī)瀏覽器打開http://localhost:5000即可。
“Linux下開發(fā)與部署ASP.NET 5的過程”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。