无法使用 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 应用程序

如何解决 Rider docker 调试问题

在 JetBrains Rider 中调试从 docker compose 运行的 .Net Core 3 应用程序

使用 Rider IDE 附加到 docker-compose 中的容器

JetBrains Rider 调试 Docker Compose 引发异常“名称或服务未知”

Rider 中的 dotnet:无法解析符号“Microsoft”