Linux下开发与部署ASP.NET5的过程

本篇内容介绍了“Linux下开发与部署ASP.NET 5的过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联致力于互联网品牌建设与网络营销,包括做网站、网站建设、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联核心团队10多年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。

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的过程”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


文章名称:Linux下开发与部署ASP.NET5的过程
文章转载:http://pwwzsj.com/article/ishocg.html