【发布时间】:2019-12-21 11:35:01
【问题描述】:
我正在尝试使用 Dockerfile 在调试配置中运行 .NET Core WebApi 项目。我已经使用 Rider 中的模板(带有 ValuesController 的模板)创建了 api 应用程序,创建了如下所示的 dockerfile。从常规启动配置文件和 dockerfile 运行应用程序而不进行调试都可以正常工作。从常规启动配置文件进行调试工作正常,但是当我尝试使用 dockerfile 运行调试配置时出现错误:
/riderDebugger/runtime.sh: exec: line 40: /riderDebugger/linux-x64/mono/bin/mono-sgen: not found。我可以看到 Rider 在运行调试配置时添加了卷绑定 /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 而是运行映像默认命令就像没有命令覆盖一样。因此,我什至无法进入容器并检查这些卷绑定出了什么问题。
我正在使用 macOS Catalina 10.15.2 和 JetBrains Rider 2019.3.1。
Dockerfile:
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" ]
【问题讨论】:
标签: docker asp.net-core macos-catalina rider