Присоедините к запуску процесса внутри докеры из VS2017
Существует ли простой способ отладки процесса, выполняющегося внутри контейнера Linux на удаленном хосте, из Visual Studio?
Представьте себе сценарий, в котором у нас есть несколько служб, развернутых на некотором удаленном компьютере и работающих в док-контейнерах - среда разработки. Во время тестирования мы обнаруживаем, что внутреннее состояние одной из служб становится прерывистым, и нам необходимо выяснить, что там происходит. Мы не хотим docker-compose up
локально, потому что мы не можем имитировать сценарий.
Вместо этого мы хотим присоединиться к запущенному процессу внутри контейнера.
Я прочитал несколько статей о том, как это сделать, но они либо о контейнерах Windows (https://www.richard-banks.org/2017/02/debug-net-in-windows-container.html), либо просто сбивают с толку (например, мне нужно установить sshd для подключения к нему из VS? Нужно ли устанавливать vsdbg, как описано здесь https://github.com/Microsoft/generator-docker/issues/130?)
Я попытался установить vsdbg в контейнер вместе с ssh, но Visual Studio не может найти никаких удаленных подключений (в Debug → Attach to Process).
Есть ли учебник специально для VS2017 & удаленная отладка & Docker Linux контейнеры
?
Ответы
Ответ 1
Вы можете попробовать отладить с помощью gdb и ssh, как показано на этой странице: https://docs.microsoft.com/en-us/cpp/linux/connect-to-your-remote-linux-computer
но это будет относиться к процессу как к собственному/неуправляемому процессу. Это в основном для отладки C++ приложений.
Для удаленной отладки управляемых процессов С#, VB, F # и т.д. Вы можете использовать "средства удаленной отладки для VS", но они предназначены только для Windows. Так что знаете, вы не можете удаленно отлаживать приложение С# на контейнере Linux.
Надеюсь, что это проясняет вещи.