超小型 PaaS 系统:Dokku

pcimt 11年前

Dokku 是一个微型的 Heroku,由 Docker 使用不多于 100 行的 Bash 编写。一旦安装完成,你就可以通过 Git 推送兼容 Heroku 的应用到平台上运行。该系统将使用 Heroku buildpacks 构建并在一个独立容器里运行,最终结果就相当于是一个单机版的 Heroku。

Dokku 不足 100 行的代码中包括如下几个组件:

  • Docker 是一个 Linux 下的容器运行环境,这是一个高级容器,提供 Heroku Dynos 类似技术,这也是 Dokku 的核心
  • Buildstep 使用 Heroku 的开源工具 buildpacks ,其职责是构建应用所需的基础映像,借助于 Heroku 的 stack 概念
  • Gitreceive 是一个项目,为你提供一个 git 用户并可推送应用到资料库,然后触发脚本来处理该推送动作。

还有一些其他的项目用来支持 Dokku 和扩展其功能,每个项目都是独立有用的。

发布应用的过程:

$ cd node-js-sample  $ git remote add progrium git@progriumapp.com:node-js-app  $ git push progrium master  Counting objects: 296, done.  Delta compression using up to 4 threads.  Compressing objects: 100% (254/254), done.  Writing objects: 100% (296/296), 193.59 KiB, done.  Total 296 (delta 25), reused 276 (delta 13)  remote: -----> Building node-js-app ...  remote:        Node.js app detected  remote: -----> Resolving engine versions    ... blah blah blah ...    remote: -----> Application deployed:  remote:        http://node-js-app.progriumapp.com

项目主页:http://www.open-open.com/lib/view/home/1371742310812