Проблема с получением отладчика RubyMine для работы с Docker - PullRequest
0 голосов
/ 09 февраля 2019

enter image description here Я настраиваю RubyMine Debugger с Docker, но я считаю, что у меня проблема с соответствием портов, и я не могу найти документацию, которая подробно объясняет, что такое «форма конфигурации в ruby»Мой запрос и как найти соответствующую информацию для полей ввода формы "все, что я могу найти, это общая информация.

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

Я следовал 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 file

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

Если контейнер докера еще не запущен, я получаю: Fast Debugger (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 (1e830daaecd39fab784b817a03893b592635542a8dfe3de69859c0ba7d39b48.0 для пользователя: ошибка 0: 0: от 0 до 0): 0.0: 0.0.0.0: пробная версия пользователя: 0: 0.0: 0.0: 0.0.0.0.0: пробная версия пользователя: 0: 0.0: 0.0: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0::: 0: 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 007 0Ошибка 3000: порт уже выделен '

Нужно ли мне запускать два отдельных сервера?

1 Ответ

0 голосов
/ 18 февраля 2019

Ваша проблема в том, что вы пытаетесь отладить порт 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...