LoginSignup
2
2

More than 1 year has passed since last update.

docker-compose upした際のログが出ない問題

Posted at

今回の問題

今回はただ今Docker初心者の私がとても悩んだ問題です。
正直、メンターさんと一緒に考えてもなかなか答えが見えなかった問題でした。
調べても調べてもなかなか出てこなくてものすごく大変でした。

やっと解決したので、今後のためにも残しておこうと思います。

使用環境

・Ruby(2.5.7)
・Ruby on Rails (6.1.3.2)
・Docker (20.10.7)
・MySQL (5.7)

問題点

スクリーンショット 2021-08-05 21.21.40.png

上のスクリーンショットを見ていただくと、本来スクリーンショット最下部「Use Ctrl-C to stop」以下にRailsのログ情報が本来出力されるはずなのですが、Railsを起動して画面読み込みをしても何もログが出力されていません。(動作自体は正常にしています。)

ターミナル
$ docker-compose up -d
$ docker attach onsen_app_1

で起動したコンテナに接続してもRailsのログは出力されませんでした。
Docker化する以前は問題なくRailsログがターミナルに出力されていたので、Docker化した際の設定に原因があるかと思いましたが、調査してもどこが引っかかっているのかわかりませんでした。

解決方法

結論を先に言うと、今回の原因は「config/environments/development.rb」にある記述を追加すれば正常に動くことができました。

development.rb
Rails.application.configure do
  # ...
  config.logger = Logger.new(STDOUT)
  # ...
end

上記に書いた「config.logger = Logger.new(STDOUT)」と言うのを「config/environments/development.rb」に追加すれば、正常に動くようになりました。
ちなみに「rails STDOUT not working docker」で検索したらようやくヒットしました。

最後に

Dockerはまだまだ初心者ゆえに大変な作業でした。
これからもDockerにはお世話になると思うので、勉強は怠らずに励んでいきたいですね。
変なまとまりになりましたが、以上で終了です。
見て頂きありがとうございました。

参考サイトです。
https://blog.eq8.eu/til/ruby-logs-and-puts-not-shown-in-docker-container-logs.html

2
2
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
2
2