タグ

ブックマーク / deeeet.com (11)

  • DockerのHost networking機能

    DOCKER 0.11 IS THE RELEASE CANDIDATE FOR 1.0 1.0のRCである0.11はいくつかの新機能が追加された.例えば,SELinuxのサポートや,Host networking機能,Link機能でのホスト名,Docker deamonへのpingなど. この中でもHost networking機能がなかなか面白いので,実際に手を動かして検証してみた.事前知識として“Dockerのネットワークの基礎”も書きました.ネットワークに関して不安があるひとが先にみると,Host Networing機能の利点/欠点もわかりやすいと思います. TL;DR Host networking機能を使うと,異なるホスト間のコンテナの連携がちょっぴりやりやすくなる.SerfやConsulのようなサービスディスカバリーツールとの相性も良さそう. まだ出たばかりの機能で実際に使っ

  • Packerを使ってChef/Puppet/AnsibleでDockerのイメージをつくる

    Packerを使ってChef/Puppet/AnsibleでDockerのイメージをつくる Packerは,Vagrantの作者であるMitchell Hashimoto氏によって開発が進められているVirtualBoxやVMWare,Amazon EC2などの仮想マシンのテンプレートの作成を行うツール.VagrantのVirtualBox用のBoxを作るveeweeに置き換わるツールとして知られている.最近のアップデートDockerのイメージのビルドをサポートした. TL;DR Packerを使えばDockerのイメージをDockerfileを使わずビルドすることができる つまり,Dockerfileの特有な記述を使わず,今まで慣れ親しんできたChefやPuppet,Ansibleのようなプロビジョニングツールを使ってDockerのイメージをビルドできる. 参考 Dockerイメージの

  • "実践Vagrant"を読んだ

    "実践Vagrant"を読んだ O’Reilly Japan - 実践 Vagrant Vagrantは普通に問題なく使えているし,をわざわざ読む必要もないと思ったが,以下のようなモチベーションで購入. Mitchell Hashimoto氏の設計思想的な部分を知りたかった プラグインをつくりたかった 落ち穂拾い まず,設計思想.1章に”Vagrant道”という節があり,ユースケースというか,Vagrantを使った高レベルなワークフローが説明されている.開発者や運用技術者からみて,普段のプロジェクトの中でVagrantがどのような役割を果たすのかが簡単にまとめられている.Vagrantが近年の開発環境にあまりに自然に入り込んできたのは,このようなビジョンがあってからこそだと思う.誰もが理解できるビジョンを掲げ,それをコードに落とし込むところがMitchell氏のすごさなんだと改めて認識し

  • プロビジョニングの終了をiOS/Androidに通知するVagrantのplugin作った | SOTA

    プロビジョニングの終了をiOS/Androidに通知するVagrantのpluginつくった tcnksm/vagrant-pushover Vagrantのプロビジョニングはものすごく時間がかかる.その時間を使って美味しい珈琲を淹れたい.でも,席を外したらいつプロビジョニングが終わったかわからない.プロビジョニングの終了を告げる通知が欲しい. 少し前からPushoverというiOS/Androidアプリで遊んでいる.シンプルなHTTP POSTを介してアプリに通知が送れる(詳しくは,“Pushover使ってみた”に書いた).メールで通知でもよかったんだけど,せっかくなので,Pushoverに通知が送れるVagrantプラグインを作った. 以下のような通知を受け取ることができる. インストール Vagrantのプラグインとしてインストールする. $ vagrant plugin insta

  • Rakefileに加えるべき7行

    Rakefileに加えるべき7行 7 Lines Every Gem’s Rakefile Should Have 必要なgemをrequireしてすぐに使えるようにしましょうと.自分はpryで. task :console do require 'pry' requrey 'my_gem' ARGV.clear Pry.start end OSSだとpry使ってないひともいる可能性があるからirbでやったほうがいいかも.

  • OSXでboot2dockerを使う

    OSXでboot2dockerを使う 公式のDocker Client for OSXがリリースされて,OSXDockerを使うのはちょっと楽になった.ただ,Docker自体はVritualBoxなどのVM上で実行する必要があり,VMの起動には時間がかかるので寿命が縮む.boot2dockerを使うと,他と比べて断然早くVMを起動でき,すぐにDockerが使える. boot2dockerというのは,Tiny Core LinuxをベースにしたDocker実行のみに特化した軽量版のLinuxディストリビューション.特化しているため起動はとても速い.前からあるが,VirtualBoxをわざわざ起動する必要があったりなど,ちょっと使うのはめんどくさかった. Vagrantの作者であるMitchell HashimotoさんがPackerを使ってboot2dockerのVagrant Boxを作

  • Vagrant + DockerでSinatraを動かす

    Vagrant + DockerでSinatraを動かす tcnksm/docker-sinatra 簡単なsinatraアプリケーションをDocker上で動かしてみた. まずはsinatraアプリケーション.特別なことはなく,Procfileとconfig.ruを準備して,foremanで動かす.外部からのアクセスを有効にするため,ListenAddressを指定しておく. #Procfile web: bundle exec rackup config.ru -p 4567 -s thin -o 0.0.0.0 次に,Vagrantの設定.VagrantはDockerのprovisioningが有効な1.4を利用する.vagrantのインストールは以下のBrewfileを準備して,brew bundleする. tap phinze/homebrew-cask install brew-

  • 公式のDocker client for OSXがリリース

    公式のDocker client for OSXがリリース 2014.01.02にOSXdocker clientがリリースされた.DockerGoで書かれているので,OSX上で自分でビルドして使ってる人もいたが,今回は公式のバイナリリリース.さらに,Homebrewのhomebrew-binaryレポジトリにFormulaも追加され,すぐに使えるようになった. clientなので,VMもしくはリモートに立てたDocker deamonに対してローカルからコマンドが叩けるようになったということ.とりあえず,ローカルにVM立てて触ってみた. tcnksm/docker-osx まず,dokcer clientのインストール. $ brew update $ brew tap homebrew/binary $ brew install docker Vagrantfileは以下のようにす

  • serverspecとdocker-apiでDockerfileをTDD

    serverspecとdocker-apiDockerfileをTDD いくつかDockerfileを書いてきた.今書いているDockerfileは短くてシンプルなものばかりだが,もっと長く複雑化した時に不安になりそうだ.不安を解消するにはテストしかない.さらにテスト駆動的にDockerイメージを開発できたら素敵だ.つまり, テストを書く Dockerイメージを作成して,テストの実行 -> RED Dockerfileの編集 Dockerイメージを作成して,テストの実行 -> GREEN テストを… の流れができるとよい. ということで,RSpecを使ってTDDでDockerfileを開発するというのをやってみた,tcnksm/docker-rspec.今回実現したのは以下. Docker Remote APIDockerfile特有のコマンド(e.g, CMDやEXPOSE)のRSp

  • Dockerで継続的インテグレーション | SOTA

    Dockerで継続的インテグレーション Dockerで複数バージョンのrubyがインストールされたイメージを作るを使って,ローカルでTravis CI的なビルドテストを実現する方法を書く. 準備 (OS X) Vagrantを使う.バージョン1.4からはDockerのprovisioningに対応してるのでそれを使う. Download Vagrant - Vagrantより.dmgをダウンロードしてきてインストール. インストールしたら,rubyプロジェクトに移動して以下を実行する. vagrant init precise64 http://files.vagrantup.com/precise64.box Vagrantfileを以下のように編集する.ここでは,docker-rbenvで作成した,複数バージョンのruby (1.8,7と1.9.3,2.0.0)とそれぞれにbundle

  • Dockerで複数バージョンのrubyがインストールされたイメージを作る

    Dockerで複数バージョンのrubyがインストールされたイメージを作る tcnksm/docker-rbenv これにより,rbenvにより複数バージョンのrubyがインストールされたイメージをつくることができる. イメージはdocker.ioに置いてある(tcnksm/rbenv)ためすぐに使うことができる. $ docker pull tcnksm/rbenv もしくはDockerfileで FROM tcnksm/rbenv とするだけ. 具体的な使い方は,Dockerで継続的インテグレーションに書いた.例えば,guardと連携して,複数バージョンに対するrspecテストをローカルで実現するなど. Dockerfile 以下では,このイメージを作成するためのDockerfileの詳細な説明とオリジナルのイメージを作成する方法について書く.Dockerfileは以下. FROM ba

  • 1