Docker有多个针对Linux上的dotnet核心的项目

我有一个简单的dotnet核心控制台应用程序,其中包含2个项目(C#)第一个是外部库,围绕dotnet标准的dotnet标准websockets客户端做一些包装。

另一个是实际的控制台应用程序,它从websockets客户端获取结果并将其推送到Azure中的服务总线队列中。

它工作正常使用dotnet ConsoleApp.dll在我的电脑和Windows容器内。 但是,当我在Linux容器中运行它失败。 我认为它是因为它不能加载依赖 – 即使它们在容器中的输出文件夹中。

我的Docker文件如下所示:

FROM microsoft/dotnet:2.0-sdk COPY WebsocketClient ./app/WebsocketClient WORKDIR / COPY ConsoleApp ./app/ConsoleApp WORKDIR ./app/ConsoleApp RUN dotnet publish -c Release -o out CMD ["dotnet", "./out/ConsoleApp.dll"] 

root @ e70c9468b11c:/ app / ConsoleApp / out#dotnet运行

启动Websocket客户端! 套接字状态从无更改为正在连接

未处理的exception:套接字状态从连接更改为closures套接字closures原因:空System.AggregateException:发生一个或多个错误。 (无法连接到远程服务器)—> System.Net.WebSockets.WebSocketException:无法连接到远程服务器在System.Net.WebSockets.WebSocketHandle.d__28.MoveNext()—堆栈跟踪结束以前的位置抛出exception—在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult )在System.Net.WebSockets.WebSocketHandle.d__24.MoveNext()—从以前的位置抛出exception的堆栈跟踪结束—在System.Runtime.CompilerServices System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() .TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Net.WebSockets.ClientWebSocket.d__16.MoveNext()—结束内部exception堆栈跟踪—在System.Threading.Tasks.Task.ThrowIfExceptional(布尔includeTaskCanceledEx 在PureWebSockets上的System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout,CancellationToken cancellationTokenToken)上的ceptions)。PureSocketCluster.PureSocketClusterSocket.Connect()上的PureWebSocket.Connect()在/ app / WebsocketClient / WsClient中的WebsocketClient.WsClient.Connect .cs:在应用程序ConsoleApp.Program.Main(String [] args)的第187行在/app/ConsoleApp/Program.cs:line 62

root @ e70c9468b11c:/ app / ConsoleApp / out#ls

ConsoleApp.deps.json ConsoleApp.runtimeconfig.json Microsoft.Azure.Amqp.dll PureSocketCluster.dll ConsoleApp.dll WebsocketClient.dll Microsoft.Azure.ServiceBus.dll PureWebSockets.dll ConsoleApp.pdb WebsocketClient.pdb Newtonsoft.Json.dll