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

时间:2017-12-01 17:02:32

标签: c# docker .net-core

我有一个简单的dotnet核心控制台应用程序,它包含2个项目(c#) 第一个是外部库,它针对以dotnet标准为目标的dotnet标准websockets客户端进行了一些包装。

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

在我的电脑和Windows容器中使用dotnet ConsoleApp.dll可以正常工作。但是,当我在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 #netnet run

启动Websocket客户端! 套接字状态从无变为连接

未处理的异常:套接字状态从“连接”更改为“已关闭” 套接字关闭原因:空 System.AggregateException:发生一个或多个错误。 (无法连接到远程服务器)---> System.Net.WebSockets.WebSocketException:无法连接到远程服务器    在System.Net.WebSockets.WebSocketHandle.d__28.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束---    在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)    在System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()    在System.Net.WebSockets.WebSocketHandle.d__24.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束---    在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)    在System.Net.WebSockets.ClientWebSocket.d__16.MoveNext()    ---内部异常堆栈跟踪结束---    在System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)    在System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout,CancellationToken cancellationToken)    在PureWebSockets.PureWebSocket.Connect()    在PureSocketCluster.PureSocketClusterSocket.Connect()    在/app/WebsocketClient/WsClient.cs:line 187中的WebsocketClient.WsClient.Connect()    at ConsoleApp.Program.Main(String [] args)在/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

0 个答案:

没有答案