Docker v1.3
fig 1.0.0
TL;DR
OS XでDockerコンテナを操作するのが手間だったけどfigを使えば解決した.
OS Xで本番環境と同じような環境をつくりたくてboot2docker + figを利用した
目を通しておいてもらいたい最高のエントリー
Docker1.3版 boot2docker+fig入門 - Qiita
必要なもの
fig
OS Xでは、Docker containerにアクセスするまでに
|
boot2dockerを一旦挟まなければならなかった.
これをfigを利用することで、透過的に
|
このようにアクセスしているかのようにラッピングができる
どのように使うか
とあるRailsのアプリケーションがあった時に、そのアプリケーションを
Docker containerで透過的に操作する為にどのようなことが必要なのかの例
|
このようにRailsアプリケーションのディレクトリに
|
Dockerfile
とfig.yml
を置く
- Dockerfile
日本に住む人々は魂をRedHatに引かれてUbuntuを利用しにくいので
CentOS 6.5でRuby 2.1.3が使えるコンテナを用意した(名前の通りsqliteも入っている)
|
- fig.yml
|
この状態で
|
とコマンドを発行し
|
で利用しているIPアドレスを確認して
http://192.168.59.103:3000/
にアクセスすると
コンテナ上で起動しているアプリケーションにアクセスすることができる.
手元のデータベース・サーバで何を選択するか
development環境がsqlite3を利用する設定であれば
データベースのミドルウェアを立ち上げる必要はないので
1コンテナで完結するのでこの方法が利用できます.
- config/database.yml
|
しかし、裏側にMySQLを利用する場合は
- fig.yml
|
- config/database.yml
|
このようにデータベースサーバ用コンテナの設定をRails側に記載しなければならない.
アプリケーションもデータベースもsupervisorなどで動くコンテナを
作成すれば良いのではないか、という話になるが、
本番サーバも同じようにsupervisorを利用しているならまだしも
手元でのテストをするためだけに専用のコンテナを用意するのは
本質的ではない気がします.
今書いていて、supervisorで色々上げるコンテナ用意するのは
それはそれでいいかもしれないという気がしてきた
まとめ
figの使い方はオフィシャルサイトのドキュメントを読んでもらえば
そんなに難しいことはやっていないのですぐ理解できます.
今まで手間だと思っていた
|
この操作が
|
- このように透過的にDocker containerを操作できる
- ポートフォワードの設定が直感的に設定ができる
- コンテナ同士のリンクも直感的に設定ができる
boot2docker + fig、最高の組み合わせです