HTML5技术

跨平台运行ASP.NET Core 1.0 - B.it(3)

字号+ 作者:H5之家 来源:博客园 2016-04-17 10:00 我要评论( )

FROM microsoft/dotnet: 0.0 . 1 -alpha- onbuild RUN sudo apt-get - y update \ sudo apt-get install -y dialog make automake libtool curl RUN curl -sSL https: // github.com/libuv/libuv/archive/v1.8.0.ta

FROM microsoft/dotnet:0.0.1-alpha-onbuild RUN sudo apt-get -y update \ && sudo apt-get install -y dialog make automake libtool curl RUN curl -sSL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz | sudo tar zxfv - -C /usr/local/src \ && cd /usr/local/src/libuv-1.8.0 \ && sudo sh autogen.sh \ && sudo ./configure \ && sudo make \ && \ && sudo rm -rf /usr/local/src/libuv-1.8.0 \ && cd ~/ \ && sudo ldconfig EXPOSE 5600

 

5.2.3 检测Dockerfile是否能正常使用
由于.NET Core时刻在更新,所以导致官网NET CLI Preview Docker image 提供的dotnet image更新不及时而在执行dotnet restore时候会报错:unknown keyword platform(主要是dotnet image内部的

.NET Core和CLI版本过旧,且存在bug),会导致基于它的咱们的Dockefile执行失败。 如果不确定你当前的dotnet image是否有上述问题,下面会介绍一种检测方法和问题的解决方案

 

(1)检测方法

执行下面命令加载dotnet image,且一般会自动启动test_container并进入到image内部环境中,如果你服务器上没有dotnet image,下面命令也会自动下载

docker run --name test_container -it microsoft/dotnet:latest

如果test_container未启动,则执行下面命令启动并关联进入

docker start test_container 

dokcer attach test_container

 

进入到image内部环境中

mkdir test cd test it clone https://github.com/aspnet/cli-samples.git cd cli-samples dotnet restore

查看是否报错

 

清除测试文件

cd ~rm -r test

 

(2)解决方案

手工制作一个使用最新.NET Core SDK的dotnet image,也可以使用我已经做好的image   sobit17/sobit-dotnet:1.0.0-beta-002252,当然如果没报错可以省略这一步,用回原来的dotnet image.

 

加载dotnet image

docker run --name dotnet_container -it microsoft/dotnet:0.0.1-alpha


如果dotnet_container 未启动,则执行下面命令启动并关联进入

docker start dotnet_container dokcer attach dotnet_container

查看.NET Core版本(dotnet image中使用的是Ubuntu14.04系统)

dotnet --version 或 dotnet --info

 


由于对应Ubuntu的dotnet package最高只到1.0.0-beta-00.1793,但这个版本也有上述bug。(查找可以使用apt-cache search XX|grep XX(XX为你知道的一部份软件名),也可以从这里查看)

所以不能利用

apt-get upgrade  dotnet  

apt-get remove dotnet  = 1.0.0.001598-1

apt-get install dotnet=1.0.0.002252-1(Ubuntu没这个最新版本)

 

只能从github下载二进制文件,安装到最新版本(最新版本可以从github上面查到:)

apt-get update -zxf dotnet-dev-ubuntu-x64.latest.tar.gz -C /usr/bin

apt-get update -zxf dotnet-dev-ubuntu-x64.latest.tar.gz ln -s /dn_new/dotnet /usr/bin/dotnet

接下来执行下面命令

dotnet --exit //退出容器 docker images //查找dotnet_container 的ConrainerID docker commit 3a09b2588478(ContainerID) dotnet_new(new image name) //commit成一个新的image

至此base image制作完毕。

接下来只要修改HelloMvc的Dockerfile以指定这个新的image作为基础镜像

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 如何在 ASP.NET Core 中发送邮件 - Savorboard

    如何在 ASP.NET Core 中发送邮件 - Savorboard

    2017-05-02 08:02

  • 十二个 ASP.NET Core 例子 - Savorboard

    十二个 ASP.NET Core 例子 - Savorboard

    2017-04-27 16:01

  • ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

    ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

    2017-04-24 08:04

  • ASP.NET Core MVC 源码学习:详解 Action 的激活 - Savorboard

    ASP.NET Core MVC 源码学习:详解 Action 的激活 - Savorboard

    2017-04-14 13:04

网友点评
i