Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux上使用Docker进行Asp.NET5.0开发_Linux_Docker_Asp.net Core - Fatal编程技术网

在Linux上使用Docker进行Asp.NET5.0开发

在Linux上使用Docker进行Asp.NET5.0开发,linux,docker,asp.net-core,Linux,Docker,Asp.net Core,我可以在docker上成功安装并运行ASP.Net MVC应用程序,方法是: Dockerfile FROM microsoft/aspnet COPY . /app WORKDIR /app RUN ["dnu", "restore"] EXPOSE 5004 ENTRYPOINT ["dnx", "." "kestrel"] 建造 跑 构建步骤需要2分钟,这就是为什么我不想在开发过程中更改一些文件时运行所有步骤的原因。在开发托管在docker中的运行时时,我将使用什么工作流?还是doc

我可以在docker上成功安装并运行ASP.Net MVC应用程序,方法是:

Dockerfile

FROM microsoft/aspnet

COPY . /app
WORKDIR /app
RUN ["dnu", "restore"]

EXPOSE 5004
ENTRYPOINT ["dnx", "." "kestrel"]
建造

构建步骤需要2分钟,这就是为什么我不想在开发过程中更改一些文件时运行所有步骤的原因。在开发托管在docker中的运行时时,我将使用什么工作流?还是docker不是合适的开发环境

编辑 我将应用程序的所有文件(包括dockerfile)复制到“/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 
System.InvalidOperationException:无法从/app解析项目“app”
在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 Binder、System.Object[]参数、System.Globalization.CultureInfo区域性)[0x00000]中:0

在开发过程中,将代码放在主机上的一个目录中,并将其装载到容器中,位于现有代码的顶部。例如,如果您将代码的副本放在当前目录的
dev_app
中:

$ docker run -v $(pwd)/dev_app:/app -d -p 80:5004 myapp

dev\u app
目录中的代码所做的任何更改都将立即反映在容器中。完成更改后,您可以使用新版本的代码重新构建容器以供分发。

听起来不错。但我仍然没有成功。请检查编辑的问题。@MalcolmFrexner。这是一个完整的问题现在有一个完全不同的问题。数字是容器的ID。如果运行
docker logs ID
,它应该会告诉您发生了什么。如果您仍然有问题,请打开一个新问题。
    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 
$ docker run -v $(pwd)/dev_app:/app -d -p 80:5004 myapp