LoginSignup
9
7

More than 5 years have passed since last update.

サーバーの起動をきちんと待つ方法

Last updated at Posted at 2015-09-11

Dockerfileでサーバーを起動してから初期データを投入する場合などに、起動コマンドを実行した直後にデータを投入するとサーバーがまだ立ち上がっておらず、エラーが発生して困るという事がたまにあります。起動コマンドが返るほうがデタッチされた子プロセスがlistenを開始するよりも早い場合などにそうなりますね。
そしてそれを避けようとしてDockerfileに sleep 2 とか書いてあるのをたまに見かけます。まあ大体それで大丈夫なのですが、どうも気になります。本当に2秒で十分なのか?何秒なら十分なのか?

そういう場合は、nc -zコマンドで疎通確認を行えば安心できます。

until nc -z <host> <port>; do sleep 1; done

sleep 2 とかやってる場所を上記で置き換えればokです。

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