gpt4 book ai didi

docker - 在 VS Code 中调试 .NET Core Docker 容器

转载 作者:行者123 更新时间:2023-12-02 05:41:37 24 4
gpt4 key购买 nike

在我的项目文件夹中,我有一个 .NET Core 2.1 Web API 项目、一个 XUnit 测试项目和我的 docker compose 文件。

在我的 API 项目中,我的 Dockerfile 有以下内容

FROM microsoft/dotnet:2.1-sdk AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.1-sdk AS build
ARG NUGET_SOURCE
WORKDIR /src
COPY api/api.csproj api/
RUN dotnet restore api/api.csproj
COPY . .
WORKDIR /src/api
RUN dotnet build api.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish api.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
RUN apt-get update
RUN apt-get install -y curl unzip
RUN curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg
ENTRYPOINT ["dotnet", "api.dll"]

在我的 docker-compose.yml 文件中,我有以下内容

version: '3.4'

services:
api:
image: myimage
ports:
- 5000:80
environment:
GoogleKey: thekey
RedisConnectionString: redis
build:
context: .
dockerfile: api/Dockerfile
args:
NUGET_SOURCE: https://api.nuget.org/v3/index.json
volumes:
- app_data:/app
entrypoint: tail -f /dev/null
depends_on:
- redis

redis:
image: redis:3.2-alpine
volumes:
- redis_data:/data

volumes:
redis_data:
app_data:

在 VS Code 的 launch.json 文件中,我添加了以下内容

{
"name": "Docker",
"type": "coreclr",
"request": "attach",
"sourceFileMap": {
"/app": "${workspaceRoot}"
},
"processId" : "${command:pickRemoteProcess}",
"pipeTransport": {
"debuggerPath": "/root/vsdbg/vsdbg",
"pipeProgram": "docker",
"pipeCwd": "${workspaceRoot}",
"quoteArgs": false,
"pipeArgs": [
"exec -i myimage_api_1"
]
}
},

从那里我运行docker-compose -f docker-compose.yml up -d --build然后docker-compose exec api dotnet api.dll

然后,我单击 Docker 调试 Pane 中的播放按钮,并尝试将其附加到 tail 和 api.dll 命令,但没有命中任何断点。

我的配置中遗漏了什么?

谢谢!

最佳答案

关于docker - 在 VS Code 中调试 .NET Core Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51920886/

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