在我的项目文件夹中,我有一个.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命令,但是没有击中任何断点。
我在配置中错过了什么?
谢谢!
答案 0 :(得分:0)