LoginSignup
12

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-02-18

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/

いい感じですね。

所感

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12