Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@sotoiwa

jqだけ含むコンテナの作成

More than 1 year has passed since last update.

お勉強のため、jqコマンドだけを含むイメージを作成し、そのイメージをCLIとして使ってみる。作業はMacローカルで実施。

jqコンテナ

FROM alpine

こちらは以下の本で紹介されている内容です。

Dockfileを作成する。

Dockerfile
FROM alpine:3.7

RUN apk add --no-cache --virtual=build-deps wget && \
  wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 && \
  mv jq-linux64 /usr/local/bin/jq && \
  chmod +x /usr/local/bin/jq && \
  apk del build-deps
ENTRYPOINT ["/usr/local/bin/jq", "-C"]
CMD [""]
  • jqに-C--color-output)オプションをつけてターミナル以外に出力する場合もカラーリングを強制
  • --virtualで仮の名前をつけておいて後で削除

イメージをビルドする。

docker image build -t sotoiwa540/jq-alpine:1.0 .

試す。パイプして使うので-tオプションはつけない。

echo '{"message": "hello"}' | docker container run --rm -i sotoiwa540/jq-alpine:1.0 .

(実行例)

$ echo '{"message": "hello"}' | docker container run --rm -i sotoiwa540/jq-alpine:1.0 .
{
  "message": "hello"
}
$

エイリアスを設定する。

alias jq-apline='docker run --rm -i sotoiwa540/jq-alpine:1.0'

エイリアスで実行。

echo '{"message": "hello"}' | jq-apline .

(実行例)

$ echo '{"message": "hello"}' | jq-apline .
{
  "message": "hello"
}
$

FROM scratch

jqバイナリをダウンロードする。

curl -Lo jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64

実行権限をつけておく必要がある。

chmod +x jq

Dockerfileの作成。

Dockerfile
FROM scratch

COPY jq /
ENTRYPOINT ["/jq", "-C"]
CMD [""]

ビルド。

docker image build -t sotoiwa540/jq-scratch:1.0 .

試す。

echo '{"message": "hello"}' | docker container run --rm -i sotoiwa540/jq-scratch:1.0 .

(実行例)

$ echo '{"message": "hello"}' | docker container run --rm -i sotoiwa540/jq-scratch:1.0 .
{
  "message": "hello"
}
$

イメージサイズを確認。

$ docker image ls | grep sotoiwa540/jq- | grep 1.0
sotoiwa540/jq-scratch                      1.0                 03a5a3445b84        6 minutes ago       3.03MB
sotoiwa540/jq-alpine                       1.0                 1ceb11c3b68e        40 minutes ago      7.26MB
$

もともとダウンロードしたjqのサイズを確認。

$ ls -l -h jq
-rwxr-xr-x  1 sotoiwa  staff   2.9M 10 20 15:44 jq
$
3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
sotoiwa
私の投稿する内容は個人の見解であり、所属団体を代表するものではありません。
aws-professional-services
AWSプロフェッショナルサービスは、お客様がクラウドのイノベーティブな活用によりビジネス価値を生み出すことを支援し、加速させるための有償のコンサルティングチームです。Twitterで情報発信しています。https://twitter.com/awscloud_jp

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?