本篇内容介绍了“Linux下开发与部署ASP.NET 5的过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.概述
先概述一下实践环境及使用工具-----》
操作系统:ubuntu-15.04(32位桌面版)【强烈建议你玩64位版】
开发工具:vscode 0.9.1(Linux下32位版)
开发辅助工具:generator-aspnet(创建ASP.NET5项目或文件模板;依赖yo工具)
开发辅助工具:dnvm(PowerShell脚本;.NET程序运行环境管理工具;借助nuget )
开发辅助工具:npm(前端开发必备的工具啦)
依赖环境:dnx-mono 1.0.0-beta8(mono版的.NET运行时,含dnu,dnx工具)
依赖环境:mono jit(编译器;如使用dnx-coreclr-linux-x64,此编译器可以不需要)
依赖环境:libuv(运行平台支持库)
部署方式:自托管(selfhost;dnx commands执行)
部署方式:容器运行托管(使用docker虚拟化技术)
(下面 $: 表示终端命令符下;#:表示在docker容器/bin/bash下执行)
2.vscode
下载和文档参见https://code.visualstudio.com
浏览器下载或者终端下的工具:
$: wget x.zip下载地址
解压:
$: unzip -n x.zip -d /指定目录
目录下Code文件就是执行文件,可以直接运行。
如在终端任意路径下调出vscode运行,要设置成全局命令,也就是创建链接。
$: 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所需环境:
$: 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项目签名密钥到系统的软件包存储库:
$: 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
更新系统的软件包存储库表:
$: 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
安装所需环境:
$: sudo apt-get install automake libtool
进入解压后的目录, 执行命令脚本:
$: sh autogen.sh
检查或设置编译环境:
$:./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
进入解压后目录,检查和设置编译环境:
$: ./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快速创建一个ASP.NET5项目或文件;
用vscode工具来编写代码;
灵活使用dnvm(dnu,dnx)来打理运行环境和程序包。
关于前端开发,你可以结合npm工具。
这里,从官方下载demo。
先安装git工具:
$: sudo apt-get install git
克隆下载:
$: git clone https://github.com/aspnet/Home.git aspnet-home
进入项目根目录(project.json所在路径),下载项目依赖安装包:
$: dnu restore (这一步要保证完整下载哦!)
查看project.json中的commands配置:
$: code . (打开项目看)
执行程序:
$: dnx commands
(如commands配置 "web": "...",就执行dnx web)
10.docker
参见https://www.docker.com
如果系统是64位,参见官方使用sh脚本方式安装即可。
不管系统是32位,还是64位,都可以采用源码编译方式安装(俺目前没体验过)。
这里只好使用ubuntu软件仓库已经自带的。
安装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 #执行dnu restore RUN ["dnu", "restore"] #开放的端口 EXPOSE 5004#dnx web执行 ENTRYPOINT ["dnx", "-p", "project.json", "web"]
然后根据Dockerfile配置来创建镜像,并运行容器:
$: sudo docker build -t myweb .
(myapp:生成新的镜像名; .:Dockerfile文件在当前目录)
在宿主机如何浏览运行在容器中的web程序? 可以采用映射端口:
$: docker run -t -d -p 5000:5004 myweb
这里宿主机浏览器打开http://localhost:5000即可。
“Linux下开发与部署ASP.NET 5的过程”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。