railsにてpryを使用してデバッグしたい。
そんため、gemをインストールして任意の箇所にbinding.pryを記述し、実行するがコンソールが動作しなかった。
開発環境については、docker環境を採用していることから、コンテナ内のコンソールを確認する必要があると分かった。
このことから、docker環境でもpryを使用できるように修正した
dockercompose
1version: '3' 2services: 3 app: 4 build: 5 context: . 6 environment: 7 RAILS_ENV: development 8 MYSQL_ROOT_PASSWORD: db_root_password 9 MYSQL_USER: app 10 MYSQL_PASSWORD: password 11 MYSQL_DATABASE: my_app_development 12 DATABASE_HOST: db 13 command: bundle exec puma -C config/puma.rb 14---------------------↓新たに追加した2行↓ 15 stdin_open: true 16 tty: true 17--------------------- 18 volumes: 19 - .:/my_app 20 - public-data:/my_app/public 21 - tmp-data:/my_app/tmp 22 - log-data:/my_app/log 23 depends_on: 24 - db 25 db: 26 image: mysql:5.7 27 environment: 28 MYSQL_ROOT_PASSWORD: db_root_password 29 MYSQL_USER: app 30 MYSQL_PASSWORD: password 31 MYSQL_DATABASE: my_app_development 32 DATABASE_HOST: db 33 volumes: 34 - db-data:/var/lib/mysql 35 ports: 36 - "3316:3306" 37 web: 38 build: 39 context: containers/nginx 40 volumes: 41 - public-data:/my_app/public 42 - tmp-data:/my_app/tmp 43 ports: 44 - "3000:80" 45 depends_on: 46 - app 47volumes: 48 public-data: 49 tmp-data: 50 log-data: 51 db-data: 52
container
1CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2a43a90dcab74 my_app_web "/bin/sh -c '/usr/sb…" 42 minutes ago Up 42 minutes 0.0.0.0:3000->80/tcp my_app_web_1 300f15cac162f my_app_app "bundle exec puma -C…" 42 minutes ago Up 42 minutes my_app_app_1 400d88ac1c7a9 mysql:5.7 "docker-entrypoint.s…" 6 days ago Up 42 minutes 33060/tcp, 0.0.0.0:3316->3306/tcp my_app_db_1
usermodel
1class UsersController < ApplicationController 2 def index; end 3 4 def show 5 @user = User.find(params[:id]) 6 end 7 8 def new 9 @user = User.new 10 end 11 12 def create 13 @user = User.new(user_params) 14 if @user.save 15 binding.pry <------ここの状態を知りたい 16 flash[:success] = 'Welcome to the Theme Words' 17 redirect_to @user 18 else 19 render 'new' 20 end 21 end 22 23 def edit; end 24 25 def update; end 26 27 def destroy; end 28 29 private 30 31 def user_params 32 params.require(:user).permit(:name, :email, :image, :password, 33 :password_confirmation) 34 end 35end
terminal
1$ docker attach my_app_app_1
で動作するはずですが、ブラウザやコマンドにて リロードしても動作せず、デバッグできない状態です。
考えられる原因はなんでしょうか?
参考にしたサイトは以下
docker上でbinding.pryを実行する
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。