OmniSharp / omnisharp-roslyn

OmniSharp server (HTTP, STDIO) based on Roslyn workspaces
MIT License
1.76k stars 420 forks source link

OmniSharp hangs when runs in Docker #1315

Open bereal opened 5 years ago

bereal commented 5 years ago

I need to run OmniSharp in a Docker container, here is an image I build:

FROM debian:jessie

RUN apt-get update && apt-get -y install apt-transport-https curl

RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.asc.gpg
RUN curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/microsoft-prod.list

RUN apt-get update && apt-get install -y dotnet-sdk-2.1 wget

RUN wget -O /tmp/s.tgz https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v1.32.6/omnisharp.http-linux-x64.tar.gz && \
    mkdir -p /work/omnisharp && \
    tar xzvf /tmp/s.tgz -C /work/omnisharp && \
    rm /tmp/s.tgz

WORKDIR /work
EXPOSE 8080

I am running it in OSX 10.13.6, Docker version: 2.0 as follows:

docker run -v <project-dir>:/work/project -p 8080:8080 omnisharp mono omnisharp/omnisharp/OmniSharp.exe -p 8080 -s /work/project

However, it seems to hang without any output or starting the server. If I add mono -v, the tracing log also stops after a while. Am I missing anything?

rchande commented 5 years ago

@bereal Hard to diagnose without seeing your log. What's the last output you see?

Craige commented 5 years ago

I am also seeing something similar with the HTTP bulid. STDIO build appears to run fine, but the HTTP build just hangs with zero output, even with --verbose.

Tried 1.32.0-1.32.8.

1.32.4 and prior hangs at a failure:

➜  craigeleeder.com ~/Downloads/omnisharp.http-osx\(6\)/run --verbose
info: OmniSharp.Http.Startup[0]
      Starting OmniSharp on MacOS 10.12.6 (x64)
info: OmniSharp.Cake.CakeProjectSystem[0]
      Detecting Cake files in '/Users/craige/Source/craigeleeder.com'.
info: OmniSharp.Cake.CakeProjectSystem[0]
      Could not find any Cake files
info: OmniSharp.Http.Startup[0]
      Project system 'OmniSharp.DotNet.DotNetProjectSystem' is disabled in the configuration.
info: OmniSharp.MSBuild.ProjectSystem[0]
      No solution files found in '/Users/craige/Source/craigeleeder.com'
info: OmniSharp.MSBuild.ProjectManager[0]
      Queue project update for '/Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj'
info: OmniSharp.Script.ScriptProjectSystem[0]
      Detecting CSX files in '/Users/craige/Source/craigeleeder.com'.
info: OmniSharp.Script.ScriptProjectSystem[0]
      Could not find any CSX files
info: OmniSharp.Http.Startup[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
info: OmniSharp.Http.Startup[0]
      Configuration finished.
info: OmniSharp.Http.Startup[0]
      Omnisharp server running on port '2000' at location '/Users/craige/Source/craigeleeder.com' on host -1.
info: OmniSharp.MSBuild.ProjectManager[0]
      Loading project: /Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj
warn: OmniSharp.MSBuild.ProjectManager[0]
      Failed to load project file '/Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj'.
fail: OmniSharp.MSBuild.ProjectManager[0]
      Attemped to update project that is not loaded: /Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj

1.32.5 hangs without this failure near the same point:

➜  craigeleeder.com ~/Downloads/omnisharp.http-osx\(7\)/run --verbose
info: OmniSharp.Http.Startup[0]
      Starting OmniSharp on MacOS 10.12.6 (x64)
info: OmniSharp.Cake.CakeProjectSystem[0]
      Detecting Cake files in '/Users/craige/Source/craigeleeder.com'.
info: OmniSharp.Cake.CakeProjectSystem[0]
      Could not find any Cake files
info: OmniSharp.WorkspaceInitializer[0]
      Project system 'OmniSharp.DotNet.DotNetProjectSystem' is disabled in the configuration.
info: OmniSharp.MSBuild.ProjectSystem[0]
      No solution files found in '/Users/craige/Source/craigeleeder.com'
info: OmniSharp.MSBuild.ProjectManager[0]
      Queue project update for '/Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj'
info: OmniSharp.Script.ScriptProjectSystem[0]
      Detecting CSX files in '/Users/craige/Source/craigeleeder.com'.
info: OmniSharp.Script.ScriptProjectSystem[0]
      Could not find any CSX files
info: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
info: OmniSharp.WorkspaceInitializer[0]
      Configuration finished.
info: OmniSharp.Http.Startup[0]
      Omnisharp server running on port '2000' at location '/Users/craige/Source/craigeleeder.com' on host -1.
info: OmniSharp.MSBuild.ProjectManager[0]
      Loading project: /Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj
info: OmniSharp.MSBuild.ProjectManager[0]
      Successfully loaded project file '/Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj'.
info: OmniSharp.MSBuild.ProjectManager[0]
      Adding project '/Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj'
info: OmniSharp.MSBuild.ProjectManager[0]
      Update project: craigeleeder.com

1.32.6 hangs immediately without reporting any output.

1.32.8 in STDIO does not appear to hang, though I could be wrong? Last thing I see from it is:

{"Event":"log","Body":{"LogLevel":"DEBUG","Name":"OmniSharp.DotNet.DotNetProjectSystem","Message":"GetProjectModel: /Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj"},"Seq":680,"Type":"event"}
{"Event":"ProjectAdded","Body":{"MsBuildProject":{"ProjectGuid":"00000000-0000-0000-0000-000000000000","Path":"/Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj","AssemblyName":"craigeleeder.com","TargetPath":"/Users/craige/Source/craigeleeder.com/bin/Debug/netcoreapp2.0/craigeleeder.com.dll","TargetFramework":".NETCoreApp,Version=v2.0","SourceFiles":["/Users/craige/Source/craigeleeder.com/Controllers/HomeController.cs","/Users/craige/Source/craigeleeder.com/Models/ErrorViewModel.cs","/Users/craige/Source/craigeleeder.com/Program.cs","/Users/craige/Source/craigeleeder.com/Startup.cs","/var/folders/lm/hx1gkxzs1_q3gk8x_n22qfhc0000gn/T/.NETCoreApp,Version=v2.0.AssemblyAttributes.cs","/Users/craige/Source/craigeleeder.com/obj/Debug/netcoreapp2.0/craigeleeder.com.AssemblyInfo.cs"],"TargetFrameworks":[{"Name":".NETCoreApp","FriendlyName":".NETCoreApp","ShortName":"netcoreapp2.0"}],"OutputPath":"bin/Debug/netcoreapp2.0/","IntermediateOutputPath":"obj/Debug/netcoreapp2.0/","Configuration":"Debug","Platform":"AnyCPU","IsExe":true,"IsUnityProject":false}},"Seq":681,"Type":"event"}
{"Event":"log","Body":{"LogLevel":"DEBUG","Name":"OmniSharp.DotNet.DotNetProjectSystem","Message":"GetProjectModel: /Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj"},"Seq":682,"Type":"event"}
{"Event":"ProjectChanged","Body":{"MsBuildProject":{"ProjectGuid":"00000000-0000-0000-0000-000000000000","Path":"/Users/craige/Source/craigeleeder.com/craigeleeder.com.csproj","AssemblyName":"craigeleeder.com","TargetPath":"/Users/craige/Source/craigeleeder.com/bin/Debug/netcoreapp2.0/craigeleeder.com.dll","TargetFramework":".NETCoreApp,Version=v2.0","SourceFiles":["/Users/craige/Source/craigeleeder.com/Controllers/HomeController.cs","/Users/craige/Source/craigeleeder.com/Models/ErrorViewModel.cs","/Users/craige/Source/craigeleeder.com/Program.cs","/Users/craige/Source/craigeleeder.com/Startup.cs","/var/folders/lm/hx1gkxzs1_q3gk8x_n22qfhc0000gn/T/.NETCoreApp,Version=v2.0.AssemblyAttributes.cs","/Users/craige/Source/craigeleeder.com/obj/Debug/netcoreapp2.0/craigeleeder.com.AssemblyInfo.cs"],"TargetFrameworks":[{"Name":".NETCoreApp","FriendlyName":".NETCoreApp","ShortName":"netcoreapp2.0"}],"OutputPath":"bin/Debug/netcoreapp2.0/","IntermediateOutputPath":"obj/Debug/netcoreapp2.0/","Configuration":"Debug","Platform":"AnyCPU","IsExe":true,"IsUnityProject":false}},"Seq":683,"Type":"event"}

Not using Docker. On OSX. All with a brand new .netcore mvc app with no sln file.