Help us understand the problem. What is going on with this article?

WhalebrewでパッケージをDockerイメージで管理する

More than 3 years have passed since last update.

Whalebrewとは?

Homebrew, but with Docker images
bfirsh/whalebrew: Homebrew, but with Docker images

とある通り、Homebrewのようなパッケージ管理ツールです。
Golangで書かれています。
Homebrewはコマンドをネイティブにインストールするのに対し、
Whalebrewではコマンドを含むDockerイメージを落として来て、コマンドを実行するとDockerコンテナが立ち上がって実行します。
Dockerイメージパッケージ管理ツールみたいなイメージですかね?(混乱)

コマンドをインストールする際に依存するパッケージをインストールしまくるという煩わしさから解放され、環境を汚さないで良いという嬉しさあります。

イケてる感じがしますね。

環境を整える

何はともあれDockerを使用するのだからDockerの環境が必要です。

以降、Mac向けに説明していきます。

Docker を install する

Docker for Macを使いましょう。

Whalebrew を install する

curl -L "https://github.com/bfirsh/whalebrew/releases/download/0.0.4/whalebrew-$(uname -s)-$(uname -m)" -o /usr/local/bin/whalebrew; chmod +x /usr/local/bin/whalebrew

README に書いているまま、楽ですね。

試してみる

どんなパッケージがあるのか調べる

whalebrew search [TERM]

で検索することができます。
TERMを省略すると全てのパッケージを表示してくれるらしい。

whalesay コマンド

$ whalebrew install whalebrew/whalesay
Unable to find image 'whalebrew/whalesay' locally
Using default tag: latest
latest: Pulling from whalebrew/whalesay
0a8490d0dfd3: Pull complete
9ea6bd635aac: Pull complete
a316b39d5e68: Pull complete
f8547c673373: Pull complete
Digest: sha256:817f551e81a73da066ed9d2ff4e1b9359a11aa87502d71116d15687da950582b
Status: Downloaded newer image for whalebrew/whalesay:latest
🐳  Installed whalebrew/whalesay to /usr/local/bin/whalesay

クジラのemojiが可愛いですね。

$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
whalebrew/whalesay   latest              7d7121620799        2 weeks ago         46 MB

確かにDockerイメージがDLされているようです。

$ whalesay hello world
 _____________
< hello world >
 -------------
    \
     \
      \
                    ##         .
              ## ## ##        ==
           ## ## ## ## ##    ===
       /"""""""""""""""""\___/ ===
  ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
       \______ o           __/
         \    \         __/
          \____\_______/

やったぜ。

awscli

$ whalebrew install whalebrew/awscli

ちょっとどこを参照しているのか見てみましょう。

$ which aws
/usr/local/bin/aws

$ cat /usr/local/bin/aws
#!/usr/bin/env whalebrew
environment:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_DEFAULT_REGION
image: whalebrew/awscli

実行するイメージ、コンテナに渡してくれる環境変数がYAMLで記述されています。
これらの環境変数を渡してあげれば動いてくれるようですね。
詳しくは https://github.com/bfirsh/whalebrew#how-it-works を参照すると良いかと思います。

環境変数を設定して、実行してみます。

$ AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxxx\
AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\
AWS_DEFAULT_REGION=ap-northeast-1\
aws s3 ls s3://static.xxxx-sandbox.xxxxx.jp/
                           PRE assets/
                           PRE images/

いい感じですね。

所感

結構いい感じです。
どんどん対応するツールが出てくると嬉しいですね。

bitkey
独自のキーテクノロジーを武器に事業を展開するスタートアップベンチャー
https://bitkey.co.jp/
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