Dockerの落とし穴

今回Dockerを使っていて落ちた罠はコンテナの2重立ち上げです。

ですのでその2重立ち上げを解決した手順を忘れないようにまとめておきます。

 

経緯

 まずDockerは"docker-compose up"か"docker-compose up -d"でコンテナを起動する。

その上で作業などをしていくのだが"ctrl+c"や"exit"でコンテナから抜け出した後に"Docker-compose  stop"をしてコンテナを停止する。

これが一連の作業ですが、最後の"Docker-compose stop"をし忘れてもう一度起動させようとすとと「A server is already running. Check /app/tmp/pids/server.pid.」とエラーのようなことが起きてコンテナが立ち上がらなくなる。これが僕が落ちた罠です。単純に忘れただけ笑

結論からいうと『あなた前にコンテナ立ち上げてるからserver.pidをチェックしてよ』みたいな感じに怒られていのでこのファイルを削除して起動し直す。という方法が一般的。

それならと思いファイルを探してみるもののどこにも見当たらず。なんでだよ。と思いながら次なる解決策を探していると

  1. docker-compose stop
  2. docker-compose down
  3. docker-compose up --build

という手順を見つけた。やっていることは1回イメージをダウンさせて再ビルドするほうほうだ。実際にやってみるとうまく動くようになった。

よかった。

 

最後に

 今回のトラブルシューティングはよくあることらしく慣れている人ならあっという間に対処するとのこと。これから触れていくものなのでこれを機会に慣れて行きたいところ。手探りは大変だけど少しづつ前に進めている。明日も頑張ろう。おやすみ