LoginSignup
25
21

More than 5 years have passed since last update.

【docker-compose】Railsサーバが起動しない場合の対処法

Posted at

はじめに

Dockerを使ってRailsアプリケーション開発時にハマった箇所をアウトプットとして残しております。

Docker勉強中のため間違った見解があればご指摘よろしくおねがいします。

問題

Railsサーバ(localhost:3000に設定しています)へ接続する際、サーバへアクセスできない。
なお、下記の状態のようにコンテナ起動は未起動になっている。

状態

docker-compose up -dでコンテナを起動時に以下の状態

$ docker-compose up -d
Starting task_jenkins_1   ... done
Starting task_db_1      ... done
Starting task_webserver_1 ... done

docker-compose psでコンテナの起動状態を確認
▼railsアプリケーションを立ち上げるためのtask_webserver_1のStateがExit 1(未起動)状態です

$ docker-compose ps
      Name                    Command               State                  Ports              
----------------------------------------------------------------------------------------------
task_db_1          docker-entrypoint.sh mysqld      Up       3306/tcp, 33060/tcp              
task_jenkins_1     /bin/tini -- /usr/local/bi ...   Up       50000/tcp, 0.0.0.0:8080->8080/tcp
task_webserver_1   bundle exec rails s -p 300 ...   Exit 1     

task_webserver_1のログを確認

$ docker logs task_webserver_1
=> Booting Puma
=> Rails 5.2.2.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とは

WEB開発サーバを起動するときに書き込まれ、停止すると削除されるファイルです。
なんらかの状態でサーバを停止したのに残ってしまっていることがあると起動状態と判断されサーバが立ち上がらなくなります。

今回はこのserver.pidが書き込まれている状態のため、webserverが起動出来なくなっている為
このファイルを削除してあげれば起動ができそうです。

対処法

▼server.pidファイルを削除

$ rm tmp/pids/server.pid

▼再度、コンテナを起動させる

$ docker-compose up -d

▼コンテナの状態を確認

$ docker-compose ps
      Name                    Command               State                 Ports              
--------------------------------------------------------------------------------------
task_db_1          docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp              
task_jenkins_1     /bin/tini -- /usr/local/bi ...   Up      50000/tcp, 0.0.0.0:8080->8080/tcp
task_webserver_1   bundle exec rails s -p 300 ...   Up      0.0.0.0:3000->3000/tcp 

StateがUp状態になっている為起動がされています。
Railsを起動するためのサーバにアクセスします。

スクリーンショット 2019-04-08 16.37.29.png

成功です。

25
21
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
25
21