LoginSignup
143
121

More than 3 years have passed since last update.

docker上でbinding.pryを実行する

Last updated at Posted at 2020-04-16

開発環境

ruby 2.6.3  
rails 6.0.2

gemのインストール

gemflie
group :development do
  gem 'pry-byebug'
end

docker上で動かすためにdocker-composeに下記を追加

stdin_open: true
tty: true
  • この2文を追加でコンテナ内の標準入出力をローカルマシンのターミナルにアタッチする準備が整います。
  • docker-compose.yml
    web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    /////↓この2文を追加
    stdin_open: true
    tty: true
    ///////////////
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
    
  • stdin_open:標準入力への接続を表す。

  • tty:標準出力の接続を表す。

pry-byebugの使い方

  • 検証したいところにbinding.pryを書く。

docker上で動かす

ターミナル
# バックグラウンドで動かす
$ docker-compose up -d
ターミナル
# Railsが動いているコンテナのIDもしくはコンテナ名を調べます.
$ docker ps
ターミナル
#railsが動いてるコンテナのidをみる
$ docker attach コンテナのIDもしくはコンテナ名_1

これでbinding.pryが記述している場所になるとデバッグモードが起動します。

デバックモードを終了する

ターミナル
exit

Attach したコンテナから抜ける場合(デタッチする)

ターミナル
Ctrl+P, Ctrl+Q

より手短にアタッチする

ターミナル
docker-compose up -d && docker attach コンテナ名_1
143
121
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
143
121