玩转BAE自定义docker镜像之ASP.NET 5篇
z****w · z****w 发布于2016-04-28 12:55 浏览:3609 回复:9

    一直以来,C#/ASP.NET的官方支持平台只有Windows。虽然有大量的开发者青睐C#简介强大的异步模型,但其终究难以在非Windows平台或PaaS端运行。然而近一两年,微软欣然拥抱开源,除了推出了Linux的云主机之外,还积极促使其各种产品以及开发工具(库)跨平台。下一代的ASP.NET 5(官网:"http://www.asp.net/vnext")也随之开始跨平台,支持WindowsMacOS以及Linux三种操作系统。目前ASP.NET 5的最新版本是RC1  update1(发布候选版1)。而根据其官网提供的排期表,ASP.NET  5很可能在2016年发布正式版本。

    Milestone

    Release week

    Beta6

    27 Jul 2015

    Beta7

    2 Sep 2015

    Beta8

    15 Oct 2015

    RC1

    Nov 2015

    RC2

    TBD

    1.0.0

    TBD 2016

    ASP.NET 5开发排期表

    From <"https://github.com/aspnet/Home/wiki/Roadmap">

    百度应用引擎(Baidu  App Engine,简称BAE,官网:"https://bce.baidu.com/product/bae.html")是国内商业运营时间最久、用户群体最为庞大的PaaS平台之一,提供弹性、便捷、一站式的应用部署服务,支持phpjavanode.jspython等各种应用。用户只需上传应用代码,BAE负责自动完成运行环境配置、应用部署、均衡负载、资源监控、日志收集等各项工作,大大简化部署运维工作。BAE分为基础版和专业版,基础版主要基于资源共享模式,为开发者提供经济、高效的分布式应用托管服务。BAE专业版基于资源独享形式,性能更加强大、运行更加稳定、安全,适用于大型、高并发的应用场景。基础版和专业版都实现了宕机实例的自动漂移,保证用户应用的高可靠性。

     

    BAE专业版架构图

    BAE专业版前不久刚刚支持了用户自定义docker镜像,因此可以运行ASP.NET 5Linux版本。笔者怀着激动的心情,把微软的跨平台大作放到了国内的PaaS平台上运行了一把,体验了一下ASP.NET 5的简介强大和BAE专业版的灵活性与兼容性。

     

    具体步骤如下:

    1. 构建并提交自定义docker镜像

    准备Dockerfile

    微软提供了ASP.NET 5的官方镜像("https://hub.docker.com/r/microsoft/aspnet/")。其中CoreCLR的镜像是可以运行在Ubuntu上的。我们可以以这个镜像作为基准,再做极少量的定制即可。

    Dockerfile内容如下:

    FROM  microsoft/aspnet:1.0.0-rc1-update1-coreclr

    WORKDIR  /home/bae/app

    CMD dnu  restore && dnx web

     

    第一行,"FROM  microsoft/aspnet:1.0.0-rc1-update1-coreclr",表示我们以微软的ASP.NET 5CoreCLR镜像(版本为RC1 update1)为基准镜像。

    第二行,是设置工作路径。由于BAE的代码始终部署在"/home/bae/app",因此就把这个目录设置为工作路径。

    第三行,是docker的启动命令。启动的时候,下载ASP.NET 5工程的依赖和启动web服务器。

     

    注意:在这里,我们没有选择构建镜像的时候就把工程代码放到镜像内部。我们仍然使用BAE传统的代码托管方式,把代码托管到应用的Git上,然后在部署的时候,BAE会自动把工程代码映射到docker内部的"/home/bae/app/"目录下。这样做的好处是,当代码频繁改动的时候,不用重新构建镜像(构建镜像是比较耗时的)。

     

    构建镜像

    首先,登录BAE镜像仓库。

    Sudo  docker login -u username -p password -e email registry.bce.baidu.com

    注意:用户名和密码是用户自己的aksk

     

    然后使用下面的命令构建镜像。

    Sudo  docker build -t registry.bce.baidu.com/0123…cdef/aspnet5jim:1 .

    镜像仓库的地址可以在BAE的控制台上获取(见下图)。注意最后面的点,表示dockerfile在当前目录。

     

    最后,推送镜像至BAE镜像仓库。

    Sudo  docker push registry.bce.baidu.com/0123…cdef/aspnet5jim:1

    这样,在BAE专业版控制台上的镜像列表里面,我们就能看到我们推送的镜像了。

     

    然后,在创建应用的界面上,选择该镜像创建应用即可。

     

    1. 准备ASP.NET 5示例代码

    创建ASP.NET 5示例工程(详细步骤请参考:"https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-app-using-vscode/"

    首先需要安装node.jsyo。注意:程序运行的时候,不需要node.jsyo,只是在生成示例工程的时候需要。

    安装node.js

    curl  -sL https://deb.nodesource.com/setup_4.x  | sudo -E bash -
      sudo apt-get install -y nodejs

    安装yo

    npm  install -g yo grunt-cli generator-aspnet bower

     

    然后,就可以生成示例代码了。

    Yo  aspnet

    然后选择Web  Application即可。

     

    最后,需要修改监听端口。

    BAE默认把外部的80端口映射到docker内部的8080端口。因此我们需要让ASP.NET 5的应用监听在8080端口。

    在工程路径下新建hosting.json文件,内容如下。

    {

        "server.urls": "http://0.0.0.0:8080"

    }

    这样,ASP.NET 5就会监听在8080端口。

    如果本地已经安装了.NET  Core(安装方法见:"http://docs.asp.net/en/latest/getting-started/installing-on-linux.html#installing-on-ubuntu-14-04"),那么在本地运行dnu restore && dnx web,应该能看到"Now listening on: http://0.0.0.0:8080" 的字样。

     

    1. 提交并部署

    在应用列表中,找到刚才创建的"aspnet5jim"的应用。然后把ASP.NET 5的实例代码提交到代码仓库中。

    Git  clone https://git.bce.baidu.com/baeapp-xxxxxxxxxx/

    Git add  *

    Git  commit -m "aspnet 5 sample"

    Git  push origin master

    最后,在应用中创建一个环境,并且单击“部署”。等待几分钟之后,就能看到下面的网页了。

     

    BAE是国内第一家把C#/ASP.NET 5搬上PaaS产品。喜欢C#的朋友,不用再犹豫了,赶快上BAE专业版尝试吧!


点赞  ( 1 )
收藏
评论(9)
共9条回复 最后由乐****小回复于2019-09-03 01:06
#2蒋****凌回复于2016-04-29 22:44:09

BAE基础版能不能来个ASP.NET

0
#3x****o回复于2016-05-12 18:40:24

好啊  百度做 app engine 国内最专业了   

正好这两天 在学 .net core  rc1  的  asp mvc


0
#4x****o回复于2016-05-16 15:20:21

跪求 BAE 专业版   

带宽费  提供  按使用流量付费的方式     

2RMB /GB  也没问题啊


跪求

跪求

#5x****o回复于2016-05-16 15:26:47

跪求 BAE 专业版  

预付费方式的 带宽费

提供  按使用流量付费的方式     

2元 /GB  也没问题啊


跪求

跪求


0
#6J****g回复于2016-05-17 23:49:38

貌似按流量计费也是有固定部分的,并不是100%按流量计。

0
#7c****y回复于2016-09-30 17:34:12

癫 痫病会影响患者的寿命吗? http://dx.tynews.com.cn/dxcs/2016/0921/4507.html

自闭症与癫 痫病的区别 http://dx.tynews.com.cn/dxcs/2016/0921/4509.html

癫 痫药会带来哪些后遗症? http://dx.tynews.com.cn/blfy/2016/0921/4512.html

多喝水对癫 痫患者也会有危害! http://dx.tynews.com.cn/dxwh/2016/0921/4517.html

老年癫 痫患者可以运动吗? http://dx.tynews.com.cn/dxbj/2016/0921/4519.html

女性癫 痫妊娠期饮食要注意哪些 http://dx.tynews.com.cn/dxys/2016/0921/4522.html

药物治疗会产生哪些不良反应? http://dx.tynews.com.cn/blfy/2016/0921/4524.html

癫 痫是单药服用好还是多药联用好? http://dx.tynews.com.cn/dxkp/2016/0919/4353.html

癫 痫患者的早期症状 http://dx.tynews.com.cn/dxdzz/2016/0920/4363.html

癫 痫会对智力造成影响吗? http://dx.tynews.com.cn/dxkp/2016/0920/4366.html

服用抗癫 痫药出现副作用我们该怎么办? http://dx.tynews.com.cn/dxkp/2016/0920/4367.html

季节变化儿童应如何服用抗癫 痫药物? http://dx.tynews.com.cn/dxkp/2016/0920/4369.html

抗癫 痫药物苯妥英钠带来的不良反应有哪些?http://dx.tynews.com.cn/blfy/2016/0920/4375.html

服用卡马西平会有哪些不良反应? http://dx.tynews.com.cn/blfy/2016/0920/4382.html

我们该如何选择抗癫 痫药物? http://dx.tynews.com.cn/dxkp/2016/0920/4386.html

医 生常说的“发物”究竟为何物? http://dx.tynews.com.cn/dxkp/2016/0920/4391.html

长期服用抗癫 痫药物会带来哪些不良反应? http://dx.tynews.com.cn/blfy/2016/0920/4396.html

癫 痫患者应该如何护理? http://dx.tynews.com.cn/dxbj/2016/0920/4400.html

怎么判断癫 痫的症状呢 http://dianxian.bjnew.net/dxzzynx/4024.html 

癫 痫发病初期的症状有哪些 http://dianxian.bjnew.net/dxzzynx/4025.html 

加巴喷丁胶囊在哪里可以买到呢,价格贵http://dianxian.bjnew.net/jbpdjn/2016/0911/3999.html  


0
#8云****笑回复于2016-10-01 09:31:00

http://dx.tynews.com.cn/zxwd/2016/0920/4399.html

http://dx.tynews.com.cn/ndt/2016/0920/4404.html

http://dx.tynews.com.cn/dxcs/2016/0920/4406.html

http://dx.tynews.com.cn/dxzzynx/4408.html


0
#9云****笑回复于2016-10-01 10:41:32

http://dx.tynews.com.cn/zxwd/2016/0920/4399.html

http://dx.tynews.com.cn/ndt/2016/0920/4404.html

http://dx.tynews.com.cn/dxcs/2016/0920/4406.html

http://dx.tynews.com.cn/dxzzynx/4408.html


0
#2乐****小回复于2019-09-03 01:06:20
该评论已删除
TOP