Dockerを使ってHerokuのような環境をお手軽に作れるdokkuを試してみた。
dokkuは動作環境にUbuntu 13.04を推奨しているので、その環境をvagrantでつくる。
追記:13.04 は EOL なので、今は 12.04 が推奨だった
まずはUbuntu 13.04のイメージを落としてくる。
$ vagrant box add raring64 http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-amd64-vagrant-disk1.box
落としてきたイメージからひな形をつくる。
$ vagrant init raring64
Vagrantfile
ができるので、エディタで開いて以下の部分のコメントを外す。これでVMにIPでアクセスできる。
config.vm.network :private_network, ip: "192.168.33.10"
そしたらゲストOS起動してログイン。
$ vagrant up
$ vagrant ssh
ログインできたら、ゲストOS側で次のコマンドを実行してdokkuをインストール。少し時間かかる。
$ wget -qO- https://raw.github.com/progrium/dokku/v0.2.1/bootstrap.sh | sudo DOKKU_TAG=v0.2.1 bash
次にVHOSTを設定する。VHOSTにはxipを使う。
$ echo deploy.192.168.33.10.xip.io | sudo tee /home/dokku/VHOST
そしたらホストOS(Mac)に戻って、公開鍵を登録する。
$ cat ~/.ssh/id_rsa.pub | ssh vagrant@192.168.33.10 "sudo sshcommand acl-add dokku vagrant"
パスワード聞かれたvagrant
でOK。
これでdokkuを使う準備が整ったので、サンプルアプリを動かしてみる。
$ git clone https://github.com/heroku/node-js-sample.git
$ cd node-js-sample
$ git remote add my-heroku dokku@deploy.192.168.33.10.xip.io:node-js-sample
$ git push my-heroku master
これで以下のアドレスでHello World!
が表示されればOK。
http://node-js-sample.deploy.192.168.33.10.xip.io/