无法使用 Rider 调试使用 docker 容器和 docker-compose 构建的 .net 核心应用程序。容器退出代码 139
Posted
技术标签:
【中文标题】无法使用 Rider 调试使用 docker 容器和 docker-compose 构建的 .net 核心应用程序。容器退出代码 139【英文标题】:Cannot debug .net core app built with docker containers and docker-compose using Rider. Containers exits with code 139 【发布时间】:2020-10-05 19:46:24 【问题描述】:我无法使用 Rider 将调试器附加到我的 docker 容器应用程序。它适用于 Visual Studio(运行和调试)并且仅使用 Rider '运行',但是当我尝试在 Rider 上“运行调试”时,应用程序尝试启动,但之后所有容器都以代码 139 和以下错误:
LTTng-UST: Error (-17) while registering tracepoint probe. Duplicate registration of tracepoint probes having the same name is not allowed.
我找不到该问题的任何解决方案,docker 日志也无济于事。您可以在下面找到配置。
示例 Dockerfile:
FROM microsoft/dotnet:2.1.5-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY My.App1/My.App1.csproj My.App1/
RUN dotnet restore My.App1/My.App1.csproj
COPY . .
WORKDIR /src/My.App1
RUN dotnet build My.App1.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish My.App1.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "My.App1.dll"]
docker-compose.yml:
version: '3.4'
services:
My.App3:
image: registry.azurecr.io/myapp3
build:
context: .
dockerfile: My.App3/Dockerfile
depends_on:
- My.App2
- My.App5
- My.App1
- My.App6
- My.app7
My.App2:
image: registry.azurecr.io/myapp2
build:
context: .
dockerfile: My.App2/Dockerfile
My.App5:
image: registry.azurecr.io/myapp5
build:
context: .
dockerfile: My.App5/Dockerfile
depends_on:
- My.App1
- My.App6
- My.app7
My.App1:
image: registry.azurecr.io/myapp1
build:
context: .
dockerfile: My.App1/Dockerfile
depends_on:
- My.App2
My.App6:
image: registry.azurecr.io/myapp6
build:
context: .
dockerfile: My.App6/Dockerfile
depends_on:
- My.App1
My.app7:
image: registry.azurecr.io/myapp7
build:
context: .
dockerfile: My.app7/Dockerfile
depends_on:
- My.App1
- My.App2
My.App4:
image: registry.azurecr.io/myapp4
build:
context: .
dockerfile: My.App4/Dockerfile
depends_on:
- My.App1
- My.App2
【问题讨论】:
【参考方案1】:您可以尝试将运行时版本更新为 dotnet:2.1.22-aspnetcore-runtime
【讨论】:
以上是关于无法使用 Rider 调试使用 docker 容器和 docker-compose 构建的 .net 核心应用程序。容器退出代码 139的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mac 上使用 JetBrains Rider 开发和调试在 Docker 中运行的 .NET Core 应用程序
在 JetBrains Rider 中调试从 docker compose 运行的 .Net Core 3 应用程序
使用 Rider IDE 附加到 docker-compose 中的容器