開発サイクルをブースト!するかもしれない。framework2javaJasperReportsPHPMySQLAJAXhtmlSQLwebWordPress仮想化DockerVMWareAndroidTipsつぶやきMenuSidebarPrevNextSearchRSSFeedlyホーム>仮想化>Docker開発サイクルをブースト!するかもしれない。itLinkedInPocketCopy開発環境って、一度作るとあとはそれほどいじらないのでいいんですが適当に作ったけど適当に社内で公開したい場合にお気軽にデプロイしたい。Capistrano使ったりするのもいいんだけど...。それに、小さめのツール類が多いんだけど、毎回nginx立ててポート変えてとかconfでゴニョゴニョして公開するの、面倒。デプロイしたら即公開みたいな環境ないかなー。herokuみたいな。思って探したらdokkuというのがあったので、触ってみました。dokkuとはOSSのherokuライクなPaaS実装。dokkuを入れたサーバに対してgitでプッシュするだけでデプロイ完了します。バックエンド(MySQLとかRedisとか)はプラグインで対応。公式https://github.com/dokku/dokku調査まずは手元で動作確認。vagrantを使っての動作確認をしていきます。何も入っていないvagrantのvmを起動します。バージョン違いで動かないのは嫌なので、公式通りUbuntu14使います。--no-provisionとしてください。upしばらく待つと起動する。起動したらvmにログインします。ssh続いて、dokkuのインストール。公式にある通りにコマンドを入れます。bootstrap.shで初期設定画面が待機しているので、開いてこれが完了すると、http://[dokkuを入れたサーバのIP]/id_rsa.pubのキーとドメイン名を設定して初期設定します。初期設定画面で入れるドメインは、とりあえず触る程度であればドメイン名にIPを含ませて叩くと常にそのIPを返してくれるというxip.ioというサービスがあるので、これを使います。dokkuを本番に組み込むようなことがある場合、自分でワイルドカードドメインを設定する必要があると思います。いうことで、vagrantで起動したvmのIPを使ってドメイン名を作ります。dokku.172.28.128.5.xip.ioこんな感じになるかと思います。Setupボタンを押すと、設定が完了します。続いて、ローカルのマシンの方にdokkuのクライアントを入れていきます。公式のshellでやるのが手っ取り早いので、そのままコマンド実行します。dokku='$HOME/.dokku/contrib/dokku_client.sh'ローカルに適当にテスト用のrailsプロジェクトを作ってデプロイしてみましょう。これでローカルのマシンでdokkuコマンドが使えるようになりました。Applicationからサンプルリポジトリを使ってデプロイします。ruby-rails-sampleサーバに入って、postgreSQLのプラグインを入れておきます。https://github.com/dokku/dokku-postgres.git再びローカルで、postgresqlサービスを作成して、アプリにリンクさせておきます。ruby-rails-sampleデプロイはherokuとほとんど一緒です。これで、デプロイ準備は整いました。-vvでdokkuが追加されていると思います。apps:createで作成される)このリポジトリに対してpushするだけでアプリがデプロイ出来ます。master早速デプロイされたアプリにアクセスしてみます。dokku.192.168.1.1.xip.io以上です。cloneそのままという印象。裏でdockerが動いているが、ほぼ意識しなくて良い。dokkuはスタンドアローンな仕組みなので、スケールさせるサービスには向かないと思います。社内で適当にサイトを立ち上げてプレビューするとか外部公開でも絶対にアクセスが増えないとかローカルだけどherokuみたいに気軽にデプロイしてサーバで動いているのを確認したいとかそーいう用途向きのプロダクトに感じました。スケールさせることが前提なのであればdeisやflynnといったプロダクトを使ってみるのがいいかもしれません。Mesosあたりを試してみるのもいいかもしれません。itLinkedInPocketCopy見やすさアップ。gendosu.jpのデザインを修正しましたNextgitにExcelファイルあげちゃった。