Удаленная отладка с помощью контейнера Docker в виртуальной машине - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу отладить работу java приложения на Docker контейнере с моей windows хост-машины. Кроме того, контейнер работает на VirtualBox VM. Я могу удаленно подключиться к своей папке проекта java в виртуальной машине, используя плагин Remote S SH кода Visual Studio (VS C). Однако я не нашел способа отладки приложения java, работающего в контейнере, с VS C на моей хост-машине windows.

Я еще не пробовал, но будет решение. Например, VS C может подключить мою виртуальную машину с помощью S SH, чтобы после подключения VS C могла отлаживать приложение java. Для отладки dockerfile приложения java должен быть также настроен для включения удаленной отладки.

Существуют ли какие-либо точные решения или плагины, которые поддерживают удаленную отладку с хост-машины (в моем случае windows хост-машина) для любого типа приложения (в моем случае java приложение), работающего на удаленном хосте docker контейнер (в моем случае docker контейнер, работающий на ВМ)? Я задал этот вопрос для visual-studio-кода.

Обзор системы

РЕДАКТИРОВАТЬ:

Я решил мою проблему с той же концепции, но два разных пути.

  1. В VS C для отладки должен быть запуск. json и похоже на мой случай

    {
      "type": "chrome",
      "request": "launch",
      "name": "Launch Chrome against VM",
      "url": "http://192.168.56.101:9000",
      "webRoot": "${workspaceFolder}"
    }
    

Этот порт 9000 открыт контейнером в виртуальной машине. Этот 192.168.56.101 IP-адрес принадлежит виртуальной машине.

С настройкой переадресации порта VirtualBox, например, перенаправить порт хоста 9000 на порт VM 9000. Таким образом, мы должны настроить запуск. json относительно конфигурации виртуальной машины, например

{
  "type": "chrome",
  "request": "launch",
  "name": "Launch Chrome against localhost",
  "url": "http://localhost:9000",
  "webRoot": "${workspaceFolder}"
}

Кроме того, запуск. json настроен для реактивной отладки и это может быть изменено для других технологий.

...