这个怎么样:
如果您的服务基于microsoft / dotnet映像,请根据同一映像创建一个新的dockerfile,然后安装调试器,ssh和unzip.
FROM microsoft/dotnet
RUN apt-get update && apt-get -y install openssh-server unzip
RUN mkdir /var/run/sshd && chmod 0755 /var/run/sshd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin without-password/g' /etc/ssh/sshd_config
RUN sed -i 's/#StrictModes yes/StrictModes no/g' /etc/ssh/sshd_config
RUN service ssh restart
RUN mkdir /root/.vs-debugger && chmod 0755 /root/.vs-debugger
RUN curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v vs2017u1 -l /root/.vs-debugger/
EXPOSE 22
构建并将其推送到您的注册表.
docker build -t myregistry/dotnetdebugger .
docker push myregistry/dotnetdebugger
在构建服务的docker镜像时,确保dll中包含PDB文件.
然后,当您的容器正在运行并且您决定需要对其进行调试时,可以将调试器容器作为侧面汽车容器附加到服务:
docker run -d -p 10222:22 --pid container:
然后在visual studio中,转到Tools>选项> Crossplatform>连接管理器 – 并添加新连接.指定容器的IP或主机名,10222作为端口(docker run命令中的端口),root作为没有密码的用户.
希望有所帮助