こんにちは。 エキサイト株式会社の三浦です。
コンテナでの開発をする際、できるだけサイズを減らすため、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など、コンテナサイズが小さくなるように作ってあるものは、その性質上普段使いしているコマンドが無いこともあります。
今回のように代替案を見つけたり、どうしようもない場合は自分でインストールしましょう。