目標
複数のDockerコンテナをfig.yml設定ファイルでまとめて管理するため、WindowsにインストールしたBoot2Dockerでfigを使えるようにしたい。だが、figの公式サイトにはLinux/Mac用のインストールだけ説明されていて、Windowsの場合はどうすればいいか書かれておらず、Windowsの公式サポートはまだないよう。
解決策
figの入ったDockerコンテナイメージをダウンロードして起動するスクリプトを、Boot2Dockerの仮想OSの永続フォルダ内に作る。
前提
- Boot2DockerをすでにWindowsにインストール済み。
- UNIXではなくあえてWindowsでDockerをどうしても使いたいというひねくれ精神
手順
1) Boot2DockerをWindowsにインストールするとデスクトップに作成される「Boot2Docker Start」ショートカットをダブルクリックし、仮想OS内のターミナルにログイン。
2) 下記スクリプトを/var/lib/boot2docker/bootlocal.sh
として作成。
$ sudo vi /var/lib/boot2docker/bootlocal.sh
echo 'alias fig='"'"'docker run --rm -it \
-v $(pwd):/app \
-v /var/run/docker.sock:/var/run/docker.sock \
-e FIG_PROJECT_NAME=$(basename $(pwd)) \
dduportal/fig'"'" >> /home/docker/.ashrc
$ sudo chmod +x /var/lib/boot2docker/bootlocal.sh
3) これでsource ~/.ashrc
と打てば、fig
コマンドが打てるようになる。fig --version
が動けば完了。
これで下記のBoot2Docker+figのチュートリアルをWindowsでも実行できるようになった。/home/docker/直下とか適当なディレクトリにDockerfile
やfig.yml
ファイルを作成してfig run ...
するだけで複数のDockerコンテナを一括で起動できる。
Docker1.3版 boot2docker+fig入門
Getting started with Fig and Rails
figを使ってDockerのクラスタを作り出す
/var/lib/boot2docker/ディレクトリ内であれば、Boot2Dockerの仮想OSを再起動してもファイルは削除されない。再起動したら
$ sudo /var/lib/boot2docker/bootlocal.sh
$ source ~/.ashrc
でfigのaliasを再作成すればよい。
参考
Windows 7 with boot2docker support for fig #598
https://github.com/docker/fig/issues/598#issuecomment-67762456