moxt

Just another Blog site

Docker導入したらどうするの?

      2015/07/03

Dockerを導入したけど、nginxが入った環境がどこでも使えるようになった!程度だったらあんま意味ないよね。

Web開発をする上でDockerをどのように使うのが効果的か考えてみる。

アプリ開発中とDocker

Macのローカル環境や会社から与えられた開発用仮想サーバで開発をして、ブラウザで確認して、差分をcommitして…みたいなことを普段やってるはず。

じゃあ、Dockerを導入することで開発効率が上がること、逆に下がることがあるのか。
ここを考えてみましょう。

環境依存問題

開発環境では動いてたんだけどステージングにデプロイしたら動かねえなあ。みたいな比較的あるある問題。
Dockerの良いところは環境をコンテナという単位で管理できること。
で、コンテナはDockerがある環境でさえあればどこでも動作してくれる。
必要なライブラリや設定ファイルをDockerfileに記述しておけば、それをビルドしてイメージを実行することで誰でも同じ環境でアプリケーションを動かすことができる。

問題もある。開発環境といっても開発者全員が使うようなライブラリの管理システムといった共有で使うべきツールとエディタといったかなりパーソナライズされたツールが混在してる。

1人で開発する場合、Docker内にいつも使ってるエディタはgitのバージョン管理用ソフトなどなど…導入することは何も問題ない。
2人以上の開発者が共通のコンテナで作業するとなると話は変わってくる。
同じVimだとしても人によって全然違うキーバインディングだったりする。
これらを1つのDockerfileで管理することはムリだろう。。

どうやって対応するか。

1つめ、共通コンテナ+個人コンテナという方法
アプリケーションが動作する環境は共通コンテナを使用する。
この共通コンテナをFROMで継承し、個人が使うツールを導入するための命令を追加する。という方法。

2つめ、SharedFolderを使う方法(mac)
Docker 1.3からboot2dockerで使われてるVMでも共有フォルダが使えるようになった。
コードが格納されてるフォルダを共有フォルダとして指定してあげればMac側のターミナルやIDEでの変更がコンテナにも同期される。便利すねー。

http://qiita.com/mopemope/items/495ab1f74bcbef0f88bb#2-5

このDockerfile参考になりますね。

その他

開発環境をVagrantより早く再構築できるだけでだいぶ嬉しいし、なにより他の問題思いつかねえ。

 - プログラミング

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

  関連記事

no image
RubyMine(OSX)でGit操作するときのコマンド集

GITを操作系のポップアップを表示したい

no image
AndroidのHandlerって何?

Handlerは何?と、Handlerを直視するとHandlerの存在意義というかなんというか文脈を捉えることが難しい。 なので、まずはAndroidがシングルスレッドである、という所からスタートしてHandlerに向かってゆく。 …

no image
goで無限ループ

しょうもないが忘れるので。。

LJ_Gsz28
コードを雑に読むアプローチでScrapyを入門する

Scrapyはスクレイピング用フレームワークなので、登場人物多すぎてよく分からない。 彼らの関係性や役割を理解を深めるために『Data …

no image
Python(Anaconda)とOpenCVを使って動画から顔画像を抽出してみる

今話題のディープラーニングをやってみたい。 いろいろ見た感じCaffeというフレームワークが良さそう。 …

no image
SwiftでOSのバージョンが8.0.0以下とそれより大きいヤツで処理を分岐させたい

前置き push通知のデバイストークン取得方法がiOS8から変わりました。 …

no image
Rubyのモジュール機能とRailsのHelperについて考える

Moduleとは 参考サイトを見ながら思ったことをメモ …

logo_og
ReactとFluxとReduxについて順を追って整理する

書き途中 Contents1 …

no image
Mastodonインスタンス(お一人様用)を作り方メモ

Mastodonは運営の存在を気にせず罵詈雑言吐けるの便利そう。 自分用のインスタンス作ったので、便所の落書きしておく。 …

300px-Ruby_logo
nokogiriでスクレイピングするときによく忘れるヤツ集

書くことで記憶を定着させる施術。 class,id以外の属性を指定してタグを探したい …