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

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/

いい感じですね。

所感

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


『 Go 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。