カテゴリー
Alpine LinuxのDockerコンテナ内で使うjqをインストールする方法
※ 当ページには【広告/PR】を含む場合があります。
2020/04/22
2022/09/30
設定ファイルのいくつかはjson形式で書かれている場合に、nodejsをインストールされている環境であれば、便利なnpmユーティリティパッケージを使って、jsスクリプトで設定jsonを操作することもあるかなと思います。
でも手元にシェルしかないとか、使ってたnpmパッケージが古くて謹製のnodeスクリプトのメンテナンスが面倒になってきたなど、制限された開発環境下や流行り廃りな状況では、やはりシェルスクリプトで操作できたらなーというのは、時たま思うところがあります。
シェルコマンドでjsonをテキストを読み込んで直に操作するのはなかなか骨の折れる作業かと思います。
そんな場合、お世話になるのが、
今回は、
jq
Docker
Alpine Linux
TL;DR
この記事は、
+ Dockerコンテナ内でアプリケーション開発している人
+ Alpine linuxでjqを導入したい人
+ Alpine linuxのシェルスクリプトでjsonファイルを操作したい人
向けの内容です。
Docker Alpineイメージへの導入方法は至って簡単で、公式のパッケージ版
jqコマンドの導入手順
では作業を具体的にやってみます。
Dockerfile
では、Dockerfileを書いて、Dockerイメージをビルドしてみます。
今回はベースイメージは
alpine:3.11
FROM alpine:3.11
#Install package of jq
RUN apk update && \
apk upgrade && \
apk add --no-cache \
jq
なお、公式のgithubレポジトリよりプロジェクトごとクローンして、ソースビルドしても同じ模様です。
詳細は
参考
コマンドをテスト
インストールが完了したら、そのままローカルでjqコマンドをゴリゴリと叩き込んでいっても良いのですが、

まずはプレイグラウンドのコンソール画面ですが、以下のような4つの窓枠で構成されています。
+ Filter:
jpコマンドに続けるjsonをパースするためのフィルター文字列を入力
+ JSON:
リソースとなるjsonファイルの中身
+ Result:
jqでパース後にシリアライズされたObjectの出力
+ Command Line:
結果として提案されるjqコマンド
利用者は、リソースとなるjsonファイルの中身を
JSON
Filter
また、コンソールの下部に
Cheatsheet
exmaple
例えば、
Cheatsheet
Unchanged input
リスト右端のアイコンをクリックします。

すると、選択したフィルター文字列に対応した一例が表示されます。

Unchanged input
|
この記事で全部の例を紹介するのも野暮ですので、一度プレイグラウンドをご自身の手で触ってみて、
jq
参考にしたサイト
※ソースビルドの方からインストールされているようです。
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー