2015-07-28 87 views
11

我想使用byebug来调试我的应用程序,但应用程序永远不会停止,尽管我已经把byebug放在我的代码中。这是我的Gemfile。Rails Byebug没有停止应用程序

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 

    gem 'byebug', '~> 5.0.0' 

    # Access an IRB console on exception pages or by using <%= console %> in views 
    gem 'web-console', '~> 2.0' 

end 

我把byebug放在我的一个控制器里。

def edit 
    byebug 
    present Ingredient::Update 
end 

我已经在我的development.rb中提出了我的所有请求。我已经几次重启服务器。

config.consider_all_requests_local  = true 

这里是例如堆栈跟踪byebug仅打印痕迹,然后应用不断去上执行的下一行。

web_1 | [43, 52] in /recipe/app/controllers/ingredients_controller.rb 
web_1 | 43: def update 
web_1 | 44:  run Ingredient::Update do |op| 
web_1 | 45:  return redirect_to op.model 
web_1 | 46:  end 
web_1 | 47:  byebug 
web_1 | => 48:  render action: :edit 
web_1 | 49: end 
web_1 | 50: 
web_1 | 51: # DELETE /ingredients/1 
web_1 | 52: # DELETE /ingredients/1.json 
web_1 | (byebug) Rendered ingredients/edit.haml within layouts/application (264.1ms) 
web_1 | Rendered layouts/_navigation.haml (45.0ms) 
web_1 | Completed 200 OK in 2827ms (Views: 2764.0ms | ActiveRecord: 3.9ms) 
web_1 | 
web_1 | 
web_1 | Started GET "/assets/application.self-1ca8529ef221ef9dba25e835f258c4e62f2f49bce400273a67e63d7d73be28ba.css?body=1" for 192.168.59.3 at 2015-07-28 06:46:00 +0000 

任何想法? 更新 我在我的Rails应用程序中使用docker-compose和docker。

+0

只需重新启动服务器并检查。 – Deep

+0

重新启动应用程序服务器 – RAJ

+0

是的,我已经几次重新启动服务器 –

回答

38

docker-composebyebug组合使用时,需要添加此功能才能使其正常工作。在this blog post

发现添加这泊坞窗,compose.yml

web: 
    ... 
    stdin_open: true 
    tty: true 

然后运行deamonized模式泊坞窗,撰写并连接到Web容器与泊坞窗:

docker-compose up -d 
docker attach myappname_web_1 
+0

请注意,没有必要在分离模式下运行您的服务。另外,当你连接到容器时,它看起来好像挂着了,但只要容器的应用程序收到请求,你就会看到日志输出。 –

+0

请勿使用docker attach myappname_web_1。相反,运行“docker container ls”来运行容器,然后找到正在处理的容器的ID。然后,运行:“docker attach container_id” – george

0

要启用调试模式:

docker-compose run --service-ports web

看到这个blog post