Я пытаюсь запустить отладчик в приложении rails, которое использует докер. Наш сервер приложений выполняется в терминале Ubuntu, используя: docker-compose up. Не нашел как запустить отладчик. Мы не можем использовать rails s --debugger. Как отладить наше приложение rails, которое интегрировано с докером. Когда я сохраняю отладчик в файле приложения, мы получаем вывод в консоли: {***** Отладчик запрошен, но недоступен (убедитесь, что ruby-debug указан в Gemfile/установлен как gem): Запустите сервер с параметром --debugger, чтобы включить * **** }
Как отлаживать приложение rails, работающее внутри контейнера докеров
Ответы (1)
Я не знаю руби или рельсы, но это общая «проблема» с docker-compose up
. В этом случае выполнение кода не остановится в работающем контейнере, а завершится ошибкой, когда вы нажмете точку для отладчика. Вместо этого вам нужно запустить службу на переднем плане:
docker-compose stop <my-service-to-debug>
docker-compose run --service-ports <my-service-to-debug>
Это приведет вас к отладчику, как только ваш код достигнет этой точки. Важной частью здесь является флаг --service-ports
, который гарантирует, что открыты те же порты, которые вы указали в файле docker-compose.yml
. Вы также можете использовать флаг --no-deps
, если вы не хотите, чтобы какие-либо связанные контейнеры перезапускались.
person
Torsten Engelbrecht
schedule
07.07.2015