溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下開發(fā)與部署ASP.NET 5的過程

發(fā)布時(shí)間:2021-09-01 17:20:50 來源:億速云 閱讀:118 作者:chen 欄目:大數(shù)據(jù)

本篇內(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í)用文章!

向AI問一下細(xì)節(jié)

免責(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)容。

AI