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
iOSアプリの設計ってどうやるの?

ViewControllerに処理を詰め込みすぎて保守が大変になるのはあるあるネタですよね。 じゃあ、ViewControllerでやることってなんだろうって問われると、まあ、こんなんだろうなってフワッとしてる。 …

no image
単語の出現頻度をlinuxコマンドだけで調べたい

無駄にpythonとか使おうとしてた。。 楽にできて良かった。 …

images
Chef::Exceptions::ChecksumMismatch:というエラーの対処

今頃になってChefの話。 チェックサムの形式をミスってる可能性がある。 …

no image
RubyとSeleniumを使って自動で画像をダウンロードする

Contents1 はじめに2 …

no image
AndroidのHandlerって何?

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

no image
DockerでNginxしたい

Contents1 Dockerfileを用意する2 …

no image
フロントエンド開発のメモ

最近のフロントエンド開発ではビルドランナーを使うのが常識になってきてるみたいなので。 jspm的なもっと進んだやり方でも良いんだけど、pluginが少ない、文献が少ない、自身の技術力不足、ということでビルドランナーなやり方でやる。 …

no image
Toolbarで表示する矢印アイコンの色を変えたい

http://stackoverflow.com/questions/26788464/how-to-change-color-of-the-back-arrow-in-the-new-material-theme 動的に色を変えるイイカンジな方法が分からず困っていた。 …

large_v
Docker Machineのメモ

随時追記する Contents1 …

logo_og
ReduxのMiddlewareについて理解したいマン

ReduxのMiddlewareの仕組みがよく分からない。 具体的な処理過程を追いかけて理解に至るまでのメモ。 …