#はじめに
Dockerでアプリ開発中の初心者向けの記事になります。
いつも通りlocalhostサーバーを走らせアクセスしようとしたところサーバに接続できません
との表示が。その時の対処法になります。
#試したこと
docker-compose.yml
ファイル内にcommand: bundle exec rails s -p 3000 -b '0.0.0.0'
確認。
ターミナルにてdocker-compose build
、docker-compose up
コマンド実行後にdocker exec -it コンテナID /bin/bash
でコンテナ内に入ろうとしてみるも、
Error response from daemon: Container コンテナID is not running
このコンテナが動いていないとエラー。
こういう時はlog確認、ということでdocker logs コンテナID
コマンド実行
A server is already running. Check /myapp/tmp/pids/server.pid.
=> Booting Puma
=> Rails 5.2.3 application starting in development
=> Run `rails server -h` for more startup options
Exiting
今度はサーバーはすでに動いているとのメッセージが。
上記メッセージにある/myapp/tmp/pids/server.pid
の中身を確認、すると
1
ポツンと数字の1発見、これを削除し再びdocker-compose up
コマンドで正常にlocalhost復旧しました。
#結論
本来docker-compose up
コマンド実行でサーバーが走っている時は中身に1
が入っているserver.pid
が作られ、docker-compose down
時には自動で削除されますが、自分の場合はどこかのタイミングで誤ってサーバーをCtrl-c
で閉じてしまったらしくserver.pid
が正常に削除されなかったことがlocalhostに接続できないエラーに繋がってしまったようです。
非常に単純な原因でしたが、このあたりの情報があまり多くなくエラー解決に結構な時間が掛かってしまいました。
この記事が少しでも誰かの役にたてば幸いです。