【问题标题】:Debugging .NET Core Docker Container in VS Code在 VS Code 中调试 .NET Core Docker 容器
【发布时间】:2018-08-19 18:57:16
【问题描述】:

在我的项目文件夹中,我有一个 .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 调试窗格中的播放按钮,并尝试将其附加到 tail 和 api.dll 命令,但没有一个断点被命中。

我在配置中遗漏了什么?

谢谢!

【问题讨论】:

  • 你有没有让它工作?

标签: docker visual-studio-code .net-core docker-compose dockerfile


【解决方案1】:
猜你喜欢
  • 2021-03-17
  • 1970-01-01
  • 2021-11-12
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
相关资源
最近更新 更多