在Linux上使用Docker进行Asp.Net 5.0开发
我可以成功地在Docker上安装并运行一个ASP.Net MVC应用程序https://github.com/aspnet/Home/tree/dev/samples/1.0.0-beta4/HelloMvc ,使用:
Dockerfile
FROM microsoft/aspnet COPY . /app WORKDIR /app RUN ["dnu", "restore"] EXPOSE 5004 ENTRYPOINT ["dnx", "." "kestrel"]
build立
docker build -t myapp .
跑
docker run -t -d -p 80:5004 myapp
Buildstep需要2分钟,这就是为什么我不想在开发过程中更改某些文件时运行所有步骤。 在docker中托pipe的运行时开发什么工作stream程? 或者docker工人是不是适合发展的环境?
编辑我复制应用程序的所有文件,包括docker文件“/ dev_app”更改为该目录并运行
$ docker run -v /dev_app:/app -d -p 80:5004 myapp
输出是容器的id
docker ps
不显示任何条目。 还有什么遗漏吗?
编辑2
执行
docker log [myid]
回报
System.InvalidOperationException: Unable to resolve project 'app' from /app 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
在开发过程中,将代码放在主机上的一个目录中,并将其安装到容器中,位于现有代码的顶部。 例如,如果您将代码的副本放在当前目录的dev_app
中:
$ docker run -v $(pwd)/dev_app:/app -d -p 80:5004 myapp
对dev_app
目录中的代码进行的任何更改都将立即反映在容器中。 完成更改后,可以使用新版本的代码重新构build容器进行分发。
- Docker安装了Python的ASPNET Core容器
- 我如何提供应用程序configuration到我的在Docker容器中运行的.NET Core Web API服务?
- 如何在Docker中运行.Net项目作为jenkins工作的一部分
- AWS Codebuild .NET Core构buildDocker镜像
- Mac OS X Docker基线aspnet错误:未findlibdl
- 如何让docker工具箱与.net core 2.0项目一起工作
- 如何从ASP.NET核心项目中删除docker支持?
- 未findASP.NET Core 1.0 EF7 System.Data.SqlClient
- 无法构build在Docker中引用PCL的ASP.NET Core应用程序