使用 Rider IDE 附加到 docker-compose 中的容器
Posted
技术标签:
【中文标题】使用 Rider IDE 附加到 docker-compose 中的容器【英文标题】:Attach to container in docker-compose with Rider IDE 【发布时间】:2021-06-08 08:35:36 【问题描述】:我正在运行 2021 版的 Rider,并且有一个相当简单的 docker-compose:
version: "3"
networks:
internal:
external: false
volumes:
test-data:
services:
aml:
hostname: aml
build:
dockerfile: ./Docker/IntegrationTests/Dockerfile
context: ../
args:
- GITHUB_USER=$GITHUB_USER
- GITHUB_TOKEN=$GITHUB_TOKEN
environment:
- TZ=Europe/London
networks:
- internal
depends_on:
- tn-mock
- db
volumes:
- test-data:/test-results
tn-mock:
hostname: tn_mock
build:
dockerfile: ./Docker/Mockoon/Dockerfile
context: ../
environment:
- TZ=Europe/London
restart: unless-stopped
networks:
- internal
db:
hostname: db
build:
dockerfile: ./Dockerfile
context: ./ToteDB
environment:
- TZ=Europe/London
restart: unless-stopped
networks:
- internal
aml 容器是一个 dotnet 5、C# 9 项目,带有以下 Dockerfile(我已经删除了一些机密信息):
ARG NET_IMAGE=5.0
FROM mcr.microsoft.com/dotnet/sdk:$NET_IMAGE AS build
RUN apt-get update && apt-get install -y libc-dev
COPY . .
ARG GITHUB_USER
ARG GITHUB_TOKEN
ARG DB_STRING
ARG TN_ENDPOINT
ENV ConnectionStrings__DefaultConnection=$DB_STRING
ENV ToteAmlClientSettings__BaseEndPoint=$TN_ENDPOINT
RUN dotnet nuget add source oursource.json -n github -u $GITHUB_USER -p $GITHUB_TOKEN --store-password-in-clear-text
WORKDIR /project.integrationtests
RUN dotnet restore
EXPOSE 3000
VOLUME ["/test-results"]
ENTRYPOINT dotnet test --test-adapter-path:. --logger:"junit;LogFileName=xunit/results.xml" --results-directory:/test-results
所以我想附加到 AML 容器以便调试它。 This article 表示应该可以。
但是,当我通过 Rider 调试按钮运行堆栈时,我收到错误 244。
在环境方面,我运行的是最新的 MacOS 和 dotnet 5.0.2。
有什么想法吗?
【问题讨论】:
【参考方案1】:所以我可以看到两件事(我在猜测)。首先,我看不到您在任何地方进行构建(我知道测试会创建构建,但您无法控制该构建)。其次,您是否不需要具有调试符号等的构建才能设置断点? (这就是错误 244 的含义)
【讨论】:
以上是关于使用 Rider IDE 附加到 docker-compose 中的容器的主要内容,如果未能解决你的问题,请参考以下文章
从 Mac 上的 Rider 附加到 Azure Functions 的调试器
在 Rider IDE 中设置 Android Xamarin 解决方案未检测到框架