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?
Para usar la palanca tienes que ejecutarla de forma diferente:
docker-compose run --service-ports web
Echa un vistazo a este artículo para más información:
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.