gpt4 book ai didi

docker - 使用 Dockerfile 使用 Jetbrains Rider 调试 .NET Core 应用程序

转载 作者:行者123 更新时间:2023-12-02 18:45:51 26 4
gpt4 key购买 nike

我正在尝试使用 Dockerfile 在调试配置中运行 .NET Core WebApi 项目。我已经使用 Rider 中的模板(带有 ValuesController 的模板)创建了 api 应用程序,创建了如下所示的 dockerfile。在不调试的情况下运行应用程序在常规启动配置文件和 dockerfile 启动配置文件中都可以正常工作。从常规启动配置文件进行调试工作正常,但是当我尝试使用 dockerfile 运行调试配置时出现错误:/riderDebugger/runtime.sh:exec:第 40 行:/riderDebugger/linux-x64/mono/bin/mono-sgen:未找到。我可以看到 Rider 在运行调试配置时添加了卷绑定(bind) /riderDebugger/riderLogs,已经检查了 /riderDebugger 的主机路径包含 runtime.sh 试图运行的文件。

此外,我无法使用命令覆盖运行从下面的 dockerfile 创建的图像,例如使用命令 docker image build -t example-api-manual --no-cache 创建图像。并使用 docker container run -it --rm example-api-manual sh 运行它不会启动 sh 但只是使用默认命令运行图像,就像没有命令一样覆盖。因此,我什至无法进入容器并检查这些卷绑定(bind)有什么问题。

我使用的是 macOS Catalina 10.15.2 和 JetBrains Rider 2019.3.1。

docker 文件:

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine AS build
WORKDIR /app

COPY *.csproj ./
RUN dotnet restore

COPY ./. ./
WORKDIR /app
RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine AS runtime
WORKDIR /app
COPY --from=build /app/out ./
ENTRYPOINT [ "dotnet", "ExampleApi.dll" ]

最佳答案

alpine 图像目前无法与内部 rider docker 调试器一起使用。请使用 Debian 镜像。只需删除 -alpine 标签就可以了:-)

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /app

COPY *.csproj ./
RUN dotnet restore

COPY ./. ./
WORKDIR /app
RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
WORKDIR /app
COPY --from=build /app/out ./
ENTRYPOINT [ "dotnet", "ExampleApi.dll" ]

编辑:我使用的是禁用 SIP(​​系统完整性保护)的 10.14.6 Mojave。请让我知道所提供的答案是否适合您。非常感谢!

关于docker - 使用 Dockerfile 使用 Jetbrains Rider 调试 .NET Core 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59435821/

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