gpt4 book ai didi

docker - Omnisharp 在使用 docker 时无声地崩溃

转载 作者:行者123 更新时间:2023-12-02 20:04:14 30 4
gpt4 key购买 nike

我正在运行 basic dotnetcore example在 docker 中,它工作正常。一切都建立起来了,我的 API 也可用了。它还会聆听完美的实时变化。您可以在问题底部找到 Dockerfile 和 docker-compose。

但是,我正在尝试使用 Visual-studio-code(内部人员和常规)结合 omnisharp(默认 c# 扩展)来处理代码,但它一直在我身上崩溃。

它会工作几秒钟,然后让我遇到 180 多个“问题”,所有这些都是错误的(应用程序工作..)

在我看来,输出没有任何指示(从重启到崩溃):

Starting OmniSharp server at 7/3/2018, 11:52:55 AM
Target: /home/mastermindzh/code/

OmniSharp server started
Path: /home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/run
PID: 2323

[info]: OmniSharp.Stdio.Host
Starting OmniSharp on arch 0.0 (x64)
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 1 MSBuild instance(s)
1: StandAlone 15.0 - "/home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
MSBUILD_EXE_PATH environment variable set to '/home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin/MSBuild.dll'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: StandAlone 15.0 - "/home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin"
MSBuildExtensionsPath = /home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild
BypassFrameworkInstallChecks = true
CscToolPath = /home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin/Roslyn
CscToolExe = csc.exe
MSBuildToolsPath = /home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin
[info]: OmniSharp.Cake.CakeProjectSystem
Detecting Cake files in '/home/mastermindzh/code/'.
[info]: OmniSharp.Cake.CakeProjectSystem
Could not find any Cake files
[info]: OmniSharp.DotNet.DotNetProjectSystem
Initializing in /home/mastermindzh/code/
[info]: OmniSharp.DotNet.DotNetProjectSystem
Auto package restore: False
[info]: OmniSharp.DotNet.DotNetProjectSystem
Update workspace context
[info]: OmniSharp.DotNet.DotNetProjectSystem
Resolving projects references
[info]: OmniSharp.MSBuild.ProjectSystem
No solution files found in '/home/mastermindzh/code/'
[info]: OmniSharp.MSBuild.ProjectManager
Queue project update for '/home/mastermindzh/code//api/api.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
Detecting CSX files in '/home/mastermindzh/code/'.
[info]: OmniSharp.Script.ScriptProjectSystem
Could not find any CSX files
[info]: OmniSharp.Stdio.Host
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
[info]: OmniSharp.Stdio.Host
Configuration finished.
[info]: OmniSharp.Stdio.Host
Omnisharp server running using Stdio at location '/home/mastermindzh/code/' on host 30096.
[info]: OmniSharp.MSBuild.ProjectManager
Loading project: /home/mastermindzh/code//api/api.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Adding project '/home/mastermindzh/code//api/api.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Update project: api

在此之后,扩展就不再工作了,直到我重新启动它并且它再次崩溃。只有在 Docker 中或从 cli 启动时才会失败,如果我通过 vscode 运行应用程序(我不想做的事情)它工作正常。

docker 文件:

FROM microsoft/dotnet:2.1-sdk-stretch
WORKDIR /app
EXPOSE 5000
CMD dotnet restore && dotnet watch run

撰写:

version: "3"
services:

web:
build:
context: ./../../api
dockerfile: ./../docker/images/api/Dockerfile
ports:
- "5000:5000"
- "5001:5001"
volumes:
- ./../../api/:/app
depends_on:
- db

到目前为止,我最好的猜测是它与 dotnet restore 和/或 bin/obj 文件夹有关。运行 dotnet clean 然后启动应用程序没有任何区别。

如有任何帮助,我们将不胜感激。

最佳答案

嗨,瑞克,你弄明白了吗?我遇到了同样的问题,试图在 docker 容器内使用 Omnisharp 扩展运行调试器。

我看到了您提到的那些 bin/obj 引用,这似乎是由于 .net 如何配置运行时环境。这似乎是基于 dotnet 共享文件夹的位置。这篇文章解释了其中的一部分: What is the purpose of msbuild's GenerateRuntimeConfigurationFiles?

我认为问题在于此共享文件夹与实际主机(我正在运行的机器)和 docker 容器上的内容不同。因此,当您在容器中运行 dotnet 时,它会根据该容器中的内容配置运行时。这会抛出 Omnisharp,因为它在容器外运行。

我认为我们可以将这些共享文件夹定义并卷挂载为 dockerfile(或 docker-compose)的一部分。但我还没有得到一些工作。我知道这是几个月前的事,但请检查您是否明白这一点。谢谢!

关于docker - Omnisharp 在使用 docker 时无声地崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51152474/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com