超小型 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