LoginSignup
2
2

More than 5 years have passed since last update.

素の alpine でのコネクション確認

Posted at

最近 ECS を使おうと docker を色々と触っているので、その知見を溜めておく。

今回は alpine で一切ツールを導入(apk add)せずにコネクション確認をするかというお話。「ヘルスチェック」ではなく「コネクション確認」という言葉を使っているのは、docker が持っているヘルスチェック機能とは違う話をするため。
応用はできるけど、もともとの動機は「アプリサーバーがDBマイグレーションを行う際に通信できる常態か知りたい」だった。

tl;dr

nc コマンドを使おう。
デフォルトでインストールされていて、なんなら UDP での接続チェックなんてのもできる。

一定の時間、コネクション確認するスクリプトは次の通り。

host=${1:-"127.0.0.1"}
port=${2:-80}

retry=0
while [ $retry -lt 10 ];
do
    sleep $retry
    echo "connection check to $host:$port"
    nc -zn $host $port
    [ $? -eq 0 ] && exit 0

    retry=`expr $retry + 1`
    echo "failed; sleep for ${retry}s"
done && exit 1

というわけで、以下は道のり
を書こうと思ったけど、まぁまた今度

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