LoginSignup
2
2

More than 3 years have passed since last update.

Rails:docker-compose upしてもstatusがexitedしてしまう現象

Last updated at Posted at 2019-08-02

最近Railsを勉強し始めて、初めてアプリ開発をしています。

その中で謎の現象が起こったのでメモしておきます。

Version

ruby '2.5.3'
rails '5.2.3'
docker 2.1.0.0
Mac PC

概要

dockerでRailsの環境を構築して開発をしていた際に、
何らかの状態から再度コンテナを立ち上げる時、docker-compose up -dをして

Starting meigen_db_1 ... done
Starting meigen_web_1 ... done

上記のように出るものの、docker psしても

a373d21eec11        mysql:5.7           "docker-entrypoint.s…"   3 days ago          Up About a minute   0.0.0.0:3306->3306/tcp, 33060/tcp   meigen_db_1

とDBのコンテナしか立ち上がらない。webサーバー側が立ち上がらないのだ。
docker ps -aでみてみると

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                               NAMES
58a49eb1bc6f        meigen_web          "bundle exec rails s…"   4 seconds ago       Exited (1) 2 seconds ago                                       meigen_web_1
a373d21eec11        mysql:5.7           "docker-entrypoint.s…"   3 days ago          Up 2 minutes               0.0.0.0:3306->3306/tcp, 33060/tcp   meigen_db_1

STATUSがexitedになってしまっている。

調査

とりあえず、調べてみる。
docker logs <コンテナID>

A server is already running. Check /app_name/tmp/pids/server.pid.
=> Booting Puma
=> Rails 5.2.3 application starting in development
=> Run `rails server -h` for more startup options
Exiting

どうやらbundle exec rails s -p 3000 -b 0.0.0.0を実行した時にこけてしまっているらしい。

注目はここ
A server is already running. Check /app_name/tmp/pids/server.pid.

もうすでにWebサーバーは動いているらしい。

そこで、マウントされているホスト側のファイルを確認してみると、

確かにtmp/pids/server.pidというファイルがある。
このファイルを削除して、再度docker-compose up -dを実行すると

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
58a49eb1bc6f        meigen_web          "bundle exec rails s…"   22 minutes ago      Up 2 seconds        0.0.0.0:3000->3000/tcp              meigen_web_1
a373d21eec11        mysql:5.7           "docker-entrypoint.s…"   3 days ago          Up 3 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   meigen_db_1

無事にコンテナが起動したままになりました!

これを解決するまでに原因が解らず、5回ほど環境構築し直しました。。
他の方が同じ道を辿らないことを祈ります。

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