LoginSignup
3
3

More than 3 years have passed since last update.

【Docker】Railsサーバが起動しない場合の対処

Posted at

はじめに

とあるDockerの教材を学習していた時に表題の通り
railsサーバが起動しなかったため備忘録として記載していますrails&Docker初心者のため間違った見解があればご指摘いただけると嬉しいです。

結論

忙しい人のために先にどうやって解決したかを記載します

▼server.pidファイルを削除

$ rm tmp/pids/server.pid

▼削除確認されるので「yes」

$remove tmp/pids/server.pid? #yes

▼コンテナを立ち上げる

$docker-compose up -d

サーバー起動で無事解決♪

問題

【Docker】を使ったrailsの環境構築を以下の流れで設定

$docker-compose run web rails new . --force --database=mysql
//省略//

$docker-compose build 
//dockerfileからイメージをビルド//

$docker-compose up -d
//現在のディレクトリにあるdocker-compose.ymlに基づいて
コンテナを起動する//

$docker-compose run web bundle exec rake db:create
//railsで使用するデータベースをMySQLサーバ上に作成//

$rails s
//立ち上がらない...//

状態

$docker-compose psでコンテナの起動状態を確認

$docker-compose ps
     Name                   Command              State           Ports       
-----------------------------------------------------------------------------
original_db_1    docker-entrypoint.sh mysqld     Up       3306/tcp, 33060/tcp
original_web_1   bundle exec rails s -p 300      Exit 1    

original_web_1のStateがExit1になっていました...

$docker logs original_web_1 でログを確認

$docker logs original_web_1
=> Booting Puma
=> Rails 5.0.7.2 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
A server is already running. Check /app/tmp/pids/server.pid.
Exiting

サーバはすでに立ち上がっていて
Check /app/tmp/pids/server.pid.を確認してくれーと言われています

server.pid とは

WEB開発サーバを起動するときに書き込まれ、停止すると削除されるファイルみたいです。
server.pid に pid が書かれていると開発用WEBサーバが起動中と判断されてしまいます。
今回はこのserver.pidが書き込まれている状態のため、railsサーバーが起動しなかったんですね〜

解決策

ということで

$ rm tmp/pids/server.pid

server.pidファイルを削除で無事解決しました♪

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