rails hub empezando dockers container con ruby-on-rails docker pry

ruby-on-rails - hub - dockers container download



¿Cómo depurar una aplicación de rieles en docker con palanca? (4)

Tengo una aplicación de rieles que se ejecuta en un contenedor docker en un entorno de desarrollo.

Cuando trato de depurarlo colocando binding.pry en algún lugar del código y adjuntándolo al contenedor, puedo ver el indicador de pry en la salida, pero no se detiene y no puedo interactuar con él como si fuera sin ventana acoplable. envase.

Entonces, ¿cómo depuro una aplicación en contenedor?



Si está utilizando docker-compose, puede agregar estos indicadores a docker-compose.yml :

app: tty: true stdin_open: true

Y luego adjúntelo a su proceso con docker attach project_app_1 . pry-rails funciona aquí ahora. Asegúrese de que se instale less en su contenedor para la experiencia de palanca óptima.

cf. https://github.com/docker/compose/issues/423#issuecomment-141995398


Sin embargo, si no utiliza la docker-compose , simplemente puede ejecutar el contenedor con la opción -it .

Por ejemplo:

docker run -v /Users/adam/Documents/Rails/Blog/:/usr/src/app -p 3000:3000 -it blog


Tuve este mismo problema cuando estaba haciendo palanca en Passenger. Intente cambiar "pry-rails" en Gemfile a gem "pry-remote" , que iniciará un protocolo dRuby o distribuido sin dependencias.

Cuando desee detener el código en ejecución, llame a "binding.remote_pry" en lugar de a "binding.pry"

Luego simplemente llama a remote-pry en la consola para acceder a ella. Debería funcionar igual. En su entorno de prueba solo el binding.pry habitual.pry funciona bien.