トップ «前の日記(2016/04/07 (木) ) 最新 次の日記(2016/04/09 (土) )» 編集 RSS feed

HsbtDiary


2016/04/08 (金) [長年日記]

docker を使う開発環境をそろえた

今まで単なるバイナリビルド環境としてしか使ってなかった docker を CI でまともに使い始めたのでいろいろ用意した。

docker の実行環境

Docker Toolbox で作る。ローカルマシンは Virtualbox の boot2docker イメージを default として使っている。Azure で動かしている個人用 VM にも docker engine を入れて、秘密鍵を作成してから tlsverify モードで起動するようにした後に docker-machine の none driver で登録して docker-machine env azure とかしてリモートでも実行できるようにするなどして分散している。

none driver で作成した場合 .docker/machine/machines/azure/config.json のファイルの AuthOptions セクションをそれっぽく書き換えないと docker-machine でいい感じに切り替えやステータスが取得できないのだけどドキュメントを見つけることができなくてだいぶ試行錯誤した。

alias の設定

@deeeet くんの https://github.com/tcnksm/docker-alias を使っている。最初、ここまで使うかなあと思ったけど、どのコマンドも重宝している。あと、docker-machine と打つのが面倒なので dm にエイリアスした。

その他

Veertu を使って boot2docker の環境を作れば Virtualbox のそれよりも性能が出るかなと思ったけど、近々 docker-toolbox でも対応するだろうから、あまり頑張らないことにした。

Dockerfile なんでも自由にかけすぎるから、如何にコンテナの更新でキャッシュを活用するようにするか、とか、CI として使うときにテスト実行と前準備・後始末のどのフェーズをコンテナイメージに入れて、どのフェーズを実行時にやらせるか、みたいなあたりが難しい。

この辺は試行錯誤中。production でも導入できるくらいにはわかったけど、今の仕組みよりバーンと楽になるイメージはまだないので、別のところにあるボトルネックを解決してからかなあ。