C# 无法在Docker上运行asp.net mvc 6

C# 无法在Docker上运行asp.net mvc 6,c#,asp.net-mvc,docker,visual-studio-code,C#,Asp.net Mvc,Docker,Visual Studio Code,我按照网站上的指导创建了一个ASP.NET MVC应用程序。我可以在本地(windows 8)上运行它。但当我试图将它发布给Docker时,问题发生了 我的dockerfile像 FROM microsoft/aspnet:1.0.0-beta4 #install npm in docker image RUN apt-get update && apt-get install -y curl RUN curl -sL https://deb.nodesource.com/se

我按照网站上的指导创建了一个ASP.NET MVC应用程序。我可以在本地(windows 8)上运行它。但当我试图将它发布给Docker时,问题发生了

我的dockerfile像

FROM microsoft/aspnet:1.0.0-beta4

#install npm in docker image
RUN apt-get update && apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup | bash -
RUN apt-get install -y nodejs

#install bower and grunt
RUN npm install -g bower
RUN npm install -g grunt-bower-cli
RUN npm install -g grunt
RUN npm install -g grunt-cli
RUN npm install -g grunt-bower-task

COPY project.json /app/

WORKDIR /app

RUN ["dnu", "restore"]

COPY . /app

CMD ["cd", "/app/"]
CMD ["npm", "install"]
CMD ["bower", "install"]

EXPOSE 5001

ENTRYPOINT ["dnx", "kestrel"]
然后我试着建造它

docker build -t thangchung/webdemo .

当我运行上述代码时,它总是抛出异常

System.InvalidOperationException: Unable to resolve project 'kestrel' from /app/kestrel
  at Microsoft.Framework.Runtime.ApplicationHostContext..ctor (IServiceProvider serviceProvider, System.String projectDirectory, System.String packagesDirectory, System.String configuration, System.Runtime.Versioning.FrameworkName targetFramework, ICache cache, ICacheContextAccessor cacheContextAccessor, INamedCacheDependencyProvider namedCacheDependencyProvider, IAssemblyLoadContextFactory loadContextFactory, Boolean skipLockFileValidation) [0x00000] in <filename unknown>:0
  at Microsoft.Framework.Runtime.DefaultHost.Initialize (Microsoft.Framework.Runtime.DefaultHostOptions options, IServiceProvider hostServices) [0x00000] in <filename unknown>:0
  at Microsoft.Framework.Runtime.DefaultHost..ctor (Microsoft.Framework.Runtime.DefaultHostOptions options, IServiceProvider hostServices) [0x00000] in <filename unknown>:0
  at Microsoft.Framework.ApplicationHost.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder,
 System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
System.invalidoOperationException:无法从/app/kestrel解析项目“kestrel”
在Microsoft.Framework.Runtime.ApplicationHostContext..ctor(IServiceProvider服务提供程序、System.String项目目录、System.String PackageDirectory、System.String配置、System.Runtime.Versioning.FrameworkName targetFramework、ICache缓存、ICacheContextAccessor cacheContextAccessor、iNameCacheDependencyProvider名称CacheDependencyProvider、iAssemblyLoadContextFactory、 0中的布尔skipLockFileValidation)[0x00000]
在Microsoft.Framework.Runtime.DefaultHost.Initialize(Microsoft.Framework.Runtime.DefaultHostOptions选项,IServiceProvider hostServices)[0x00000]中:0
在Microsoft.Framework.Runtime.DefaultHost..ctor(Microsoft.Framework.Runtime.DefaultHostOptions选项,IServiceProvider hostServices)[0x00000]中:0
位于:0中的Microsoft.Framework.ApplicationHost.Program.Main(System.String[]args)[0x00000]
at(包装器管理为本机)System.Reflection.monmethod:InternalInvoke(System.Reflection.monmethod,object,object[],System.Exception&)
在System.Reflection.MonMethod.Invoke(System.Object obj、BindingFlags invokeAttr、System.Reflection.Binder、,
0中的System.Object[]参数,System.Globalization.CultureInfo区域性)[0x00000]
有人能告诉我为什么我不能在Docker上运行它吗


欢迎提出任何建议。谢谢。

您是否使用了来自的正确Docker图像

关于在msdn Docker上运行ASP.NET 5的文章-

编辑:

根据文章,你失踪了

RUN ["kpm", "restore"]
Dockerfile

2015年5月适用于ASP.NET 5的文章:

随着从k到dnx的更新,您现在必须为包含project.json的目录提供一个path参数

k kestrel
变成

dnx . kestrel

是的,我使用了。我使用了1.0.0-beta4标记,并检查了project.json中的所有版本。检查我的编辑,我认为您应该使用
kpm
(来自asp.net),而不是
dnu
,我认为MSDN中的教程很旧。现在您必须运行dnu和dnx命令,而不是kpm和k:(我已经检查过这篇文章是在3天前更新的-尝试:更新
ENTRYPOINT
,并将那里的路径添加到您的项目中。)
dnx . kestrel