Проблема с запуском отладчика RubyMine для работы с Docker

Проблема с запуском отладчика RubyMine для работы с DockerI Я настраиваю RubyMine Debugger с помощью Docker, но я считаю, что у меня проблема с сопоставлением портов, и я не могу найти документацию, в которой подробно объясняется, что запрашивает «форма конфигурации в ruby ​​mine» и как найти соответствующую информацию для поля ввода формы» все, что я могу найти, это общая информация.

У меня было много сообщений об ошибках и даже сбой, когда я нажимаю кнопку отладчика. Я пробовал намного больше, чем то, что я публикую, но я никогда не записывал это. Это то, где я нахожусь в данный момент

Я подписался на https://confluence.jetbrains.com/display/RUBYDEV/How+to+setup+and+run+ruby+remote+debug+session

Я добавил порты в файл docker-compose.yml. Настройка конфигурации для удаленного удаленного Ruby SDK и Gem. Настройте конфигурацию удаленной отладки Ruby. Я пытался работать над каждой ошибкой, но я просто получаю больше, когда иду. Это приложение использует docker-compose, и я совсем не знаком с ним, кроме всего того, что я читал, чтобы получить эту настройку отладчика.

файл docker-compose.yml

app:
  build: wffffffe_api
  dockerfile: Dockerfile-development
  command: rails server --port 3000 --binding 0.0.0.0
  stdin_open: true
  tty: true
  ports:
    - "3000:3000"
    - "1234:1234"
    - "26162:26162"

  volumes:
    - './wfffffe_api:/var/www/weffffffe_api'
    - './dotfiles/.vimrc-basic:/root/.vimrc'

Конфигурация отладчика

Remote host: 0.0.0.0
Remote port: 3000
Remote root folder: /var/www/wffffffe_api
local port: 26162
local root folder: /Users/josh/Work/wffffffe_api

я пробовал делать

docker-compose exec app rdebug-ide --host 0.0.0.0 --port 3000 --dispatcher-port 26162 -- bin/rails server

Если контейнер докеров уже запущен, я получаю: Фатальное исключение в цикле DebugThread: Адрес уже используется - bind(2) для порта "0.0.0.0" 3000

Если контейнер докеров еще не запущен, я получаю: Быстрый отладчик (ruby-debug-ide 0.6.1, debase 0.2.2, поддерживается фильтрация файлов) прослушивает 0.0.0.0:3000

Я то делаю docker-compose up --build -d ОШИБКА: для приложения Не удается запустить приложение-службу: b'driver не удалось запрограммировать внешнее подключение к конечной точке work_app_1 (1e830daaecd39fab784b817a03893b592635542a8dfe3de69859c0ba7d39b483): ошибка при запуске прокси-сервера пользовательского пространства: сбой привязки для 0.0.0.0:3000: порт уже выделен '

Нужно ли мне иметь два отдельных работающих сервера?

🤔 А знаете ли вы, что...
Фреймворк обеспечивает возможность интеграции с различными фронтенд-технологиями и библиотеками, включая JavaScript и CSS.


2 282
1

Ответ:

Ваша проблема в том, что вы пытаетесь отлаживать порт 3000, который уже привязан к вашему приложению rails.

--port rdebug-ide указывает порт, который RubyMine будет использовать для своего протокол отладки.

Когда вы выполняете rails server --port 3000 --binding 0.0.0.0, вы привязываете порт 3000 как ваше приложение rails (а не как порт отладки).

Измените отладку удаленного порта на 1234 (которую вы уже указали в своем docker-compose.yml), и она должна работать.

Подводя итог, ваша команда должна выглядеть так:

docker-compose exec app rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails server --port 3000 --binding 0.0.0.0