Cómo depurar una aplicación .NET Core que se ejecuta en el contenedor Docker de Linux desde Visual Studio

Tengo mis propios archivos Dockerfile / docker-compose escritos a mano. Comienzo contenedores desde la línea de comando. Ahora quiero adjuntar VS2017 (no VSCode) a mi aplicación dentro de un contenedor Docker (basado en Linux). Parece que debería ser una tarea bastante fácil, pero no puedo encontrar ninguna información sobre cómo hacer esto.

Leí la guíahttps://github.com/Microsoft/MIEngine/wiki/Offroad-Debugging-of-.NET-Core-on-Linux---OSX-from-Visual-Studio cuidadosamente. Al principio parecía lo que necesitaba: una descripción sobre cómo depurar remotamente una aplicación de Netcore que se ejecuta en Linux. Pero solo cuenta una parte de la historia: cómo depurar a través de SSH. Y solo menciona a Docker, pero no dice nada sobre cómo depurar remotamente una aplicación dentro de Docker.
Supongo que no debería haber mucho específico de Docker aquí, solo ejecuta vsdbg dentro de Docker y se adjunta aquí. Pero obviamente es un caso de uso de desarrollo muy común y es extraño que no haya buena información al respecto.

Seguramente hayHerramientas VS para Docker mediante el cual podemos depurar fácilmente una aplicación dentro del contenedor Docker. Pero para mí VS Tools for Docker son terribles. Sí, funcionan sin problemas al principio. Pero no está claro qué está pasando bajo el capó.

Parece que podemos buscar lo que hacen VSTools para Docker e intentar reproducirlo. Pero no es muy obvio. Agrega un archivo yaml "debug" adicional a docker-compose (docker-compose.vs.debug.g.yml) que debería hacer la magia de depuración. Atado agregué ese yaml a mi docker-compose escrito a mano, ejecuté Dockers pero ¿cómo adjuntar VS? Obtengo la IP de mi contenedor, intenté encontrar un depurador remoto en esa IP y 4022 que VS no puede ver nada. También es sospechoso que debug.yaml creado por Tools for Docker no tenga nada sobre exponer el puerto 4022 como podría esperarse.

PD encontré una buena guía pero en contenedores de Windows -https://github.com/riskfirst/debugging-aspnet-core-windows-docker

Respuestas a la pregunta(2)

Su respuesta a la pregunta