Alpine Linuxで、URLに対するヘルスチェックを行う方法

こんにちは。 エキサイト株式会社の三浦です。

コンテナでの開発をする際、できるだけサイズを減らすため、Alpine Linux(以降Alpine)を使っている方も多いと思います。

ですがAlpineは、サイズを減らすためにデフォルトでは curl コマンドが入っていません。 そのため、例えばAPIのヘルスチェックのための curl を使ったエンドポイントへのアクセスは、少なくともデフォルトそのままでは出来ないということになります。

今回は、 Alpineを使っている場合の、APIのエンドポイントへのヘルスチェックのためのアクセス方法を説明します。

方法1:curlをインストールする

1つめの方法は、シンプルに curl をインストールするというものです。

FROM ***-alpine

RUN apk update \
    && apk add --upgrade curl

こうすれば、あとは通常通り curl でヘルスチェック可能です。

curl -f http://localhost/health/path || exit 1

方法2:wgetを使用する

2つめは、 wget を使用する方法です。

Alpineは、 curl はデフォルトでは入っていませんが wget は入っているので、それを活用します。

wget --quiet --spider http://localhost/health/path || exit 1

-q -O オプションを使う方法もあるようです。

特に curl を他で使う必要性が無いのであれば、デフォルトで入っているこの wget を使った方法の方が、手間がかからず良いのではないでしょうか。

最後に

Alpineなど、コンテナサイズが小さくなるように作ってあるものは、その性質上普段使いしているコマンドが無いこともあります。

今回のように代替案を見つけたり、どうしようもない場合は自分でインストールしましょう。