【发布时间】:2020-11-04 09:05:54
【问题描述】:
我正在尝试使用 Docker 调试我的 .Net Core webApi 项目。但是,我正在努力让它发挥作用。
我正在关注link,使用 VS Code 将我的 .Net Core 应用程序附加到 Docker 上。
这是我的 Dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
#install debugger for NET Core
RUN apt update && \
apt install -y procps && \
curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l /vsdbg
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "BooksApi.dll"]
然后,我添加了 launch.json 以附加 Docker 容器进程:
"configurations": [
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickRemoteProcess}",
"pipeTransport": {
"pipeProgram": "docker",
"pipeArgs": ["exec", "-i", "forecastapp"],
"debuggerPath": "/vsdbg/vsdbg",
"pipeCwd": "${workspaceRoot}",
"quoteArgs": false
},
"sourceFileMap": {
"/app": "${workspaceRoot}"
}
}
]
这两个文件乍一看似乎很好。因此,在 Docker 上构建和运行它时一切正常。
Docker 构建命令:
docker build -t myweatherforecastapp .
Docker 运行命令
docker run -it -p 8080:80 --name forecastapp myweatherforecastapp
到目前为止,一切正常。我可以到达终点。
所以,docker 容器正在运行。现在我想使用 Visual Studio Code 附加它。当我点击调试选项上的绿色箭头时:
我收到此错误:
当谷歌搜索错误时,我看到我们需要使用 apt install (link) 安装 procps。这已经包含在我的 Dockerfile 中:
apt install -y procps
我有点想不出什么可能是错的,或者我是否遗漏了什么。你能帮忙吗?
提前致谢。
【问题讨论】:
标签: c# docker asp.net-core .net-core dockerfile