Dokku:搞一個你自己的'Heorku'

  在上一篇博客《Heroku:快速部署Dropwizard開發的RESTful Service中,我們使用了Heroku這個PaaS進行快速部署。如果因爲某些原因,你覺得把你的Service部署到Heroku這樣的public PaaS不太靠譜,或者政策上不允許,你也完全可以動手自己做一個類似Heroku這樣功能的PaaS平臺。而且,很幸運,開源工具dokku,能夠幫助你很快的搞定這些東西。

  當你搭建好dokku Server以後,其使用就幾乎和Heroku一樣,當你使用git push的時候,dokku會使用buildpack檢測你的應用,然後再部署,因爲這樣,dokku可以支持部署各種不同類型的app,java、ruby、nodejs都不在話下。在部署時,dokku和Heroku也是類似的使用LXC(LinuX Contianer)來運行你的Server,這樣的方式使得起啓動更快更輕。dokku使用了由dotcloud的著名開源LXC管理工具docker來運行你的應用。docker是一個好東西,如果我還不是太懶的話,以後會有博客來演示docker的使用。

  這裏搭建dokku server,使用的是Vagrant,沒有用AWS演示。(其實是因爲信用卡還沒辦下來,辦下來了,我就把博客更新一下,用AWS進行部署)。


1.搭建dokku server

1)安裝VirtualBox和Vagrant,此處省略200字。

2)創建一個文件夾:dokku-dropwizard-demo

3)初始化vagrant:$ vagrant init

   修改Vagrantfile中的網絡設置

config.vm.network :private_network, ip: "192.168.33.10"

   這個原來是被註釋掉的,取消註釋就可以了。這樣,你的主機就可以訪問你用虛擬機啓動的Dokku Server了。

4)安裝虛擬機:$ vagrant up

5)進入虛擬機:$ vagrant ssh

6)安裝dokku: wget -qO - https://raw.github.com/progrium/dokku/v0.2.0/bootstrap.sh | sudo DOKKU_TAG=v0.2.0 bash

5)配置ssh:$ cat ~/.ssh/id_rsa.pub | ssh [email protected] "sudo sshcommand acl-add dokku progrium"

vagrant默認的用戶名和密碼都是vagrant。所以,當提示你輸入密碼的時候,輸入vagrant就行了。


2.部署Service到dokku server

我們使用《Heroku:快速部署Dropwizard開發的RESTful Service中開發的Service進行部署

指定buildpack文件。在項目中加入.env文件:

export BUILDPACK_URL=https://github.com/kiwiwin/heroku-buildpack-gradle

使用git push部署到運行在Vagrant虛擬機中的dokku server:

$ git remote add dokku git [email protected]:dropwizard-demo

$ git push dokku master

這個階段因爲我們的buildpack是指定的gradle-1.9,需要下載,特別是當你在網速不給力的時候,第一次比較耗時,請保持耐心,稍安勿躁。

七七四十九天以後,看到類似下圖以後,我們的應用就可以訪問啦。



3.訪問Service

 $ curl http://192.168.33.10/hello?name=rocojie

 返回

 {"id":2,"content":"Hello, rococojie!"}


 有了這麼好的工具,不玩玩兒不就可惜了嗎?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章