0
1

More than 3 years have passed since last update.

docker-composeで環境構築する際、railsサーバーのコンテナが起動しないときの対処法

Last updated at Posted at 2019-12-27

記事の目的

railsのコンテナをdocker-composeで立ち上げる際に発生したコンテナが起動しない問題に対しての対処法を共有すること。

状況

$ docker-compose up -dでコンテナを立ち上げる。

$ docker-compose up -d
rails_db_1 is up-to-date
Starting rails_web_1 ... done

$ docker-compose psで現在のコンテナの中身を確認したところ、

$ docker-compose  ps 
   Name         Command     State       Ports   
------------------------------------------------
rails_db_1    docker-entr   Up       3306/tcp,  
              ypoint.sh              33060/tcp  
              mysqld                            
rails_web_1   bundle exec   Exit 1              
              rails s -p                        
              300 ...   

対処法

$ docker logs rails_web_1でlogを確認。

$ docker logs rails_web_1
=> Booting Puma
=> Rails 5.0.0.1 application starting in development 
=> Run `rails server -h` for more startup options
A server is already running. Check /app/tmp/pids/server.pid.
Exiting

すると、「もうすでにサーバーは起動しているよ、
/app/tmp/pids/server.pid.を確認してね。」と言っている。

server.pid.について

これは、サーバを起動するときに書き込まれ、
$ docker-compose downなどのコマンドでサーバを停止した際に残ってしまっていることがあるファイル。

これがあるともう一度起動したくても、起動状態と判断されサーバが立ち上がらなくなる。

よってこのファイルを削除すると起動ができる。

$ rm tmp/pids/server.pid

で削除。

もう一度立ち上げてコンテナを確認

$ docker-compose up -d
rails_db_1 is up-to-date
Starting rails_web_1 ... done
$ docker-compose  ps 
   Name         Command      State      Ports   
------------------------------------------------
rails_db_1    docker-entry   Up      3306/tcp,  
              point.sh               33060/tcp  
              mysqld                            
rails_web_1   bundle exec    Up      0.0.0.0:300
              rails s -p             0->3000/tcp
              300 ...                       

Stateを確認すると起動していることが確認できる。

終わりに

コンテナを削除する際にserver.pid.が残ってしまう時は、 rm tmp/pids/server.pidで削除すればコンテナを起動することができる。
dockerを使いたての初心者がよく陥りやすいミスなので覚えておくと得。

0
1
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
0
1