Dokku是一个微型的Heroku,由Docker使用不多于100行的Bash编写。一旦安装完成,你就可以通过Git推送兼容Heroku的应用到平台上运行。该系统将使用Herokubuildpacks构建并在一个独立容器里运行,最终结果就相当于是一个单机版的Heroku。
Dokku不足100行的代码中包括如下几个组件:
Docker是一个Linux下的容器运行环境,这是一个高级容器,提供HerokuDynos类似技术,这也是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 masterCounting 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 detectedremote: -----> Resolving engine versions... blah blah blah ...remote: -----> Application deployed:remote: https://node-js-app.progriumapp.com目前提供的插件:
Datastores:
MariaDB:https://github.com/Kloadut/dokku-md-plugin
MongoDB(singlecontainer):https://github.com/jeffutter/dokku-mongodb-plugin
PostgreSQL:https://github.com/Kloadut/dokku-pg-plugin
PostgreSQL(singlecontainer):https://github.com/jeffutter/dokku-postgresql-plugin
Redis:https://github.com/luxifer/dokku-redis-plugin
RiakCS(singlecontainer):https://github.com/jeffutter/dokku-riakcs-plugin
ProcessManagers:
Circus:https://github.com/apmorton/dokku-circus
Shoreman:https://github.com/statianzo/dokku-shoreman
Supervisord:https://github.com/statianzo/dokku-supervisord
Other:
Node:https://github.com/pnegahdar/dokku-node
user-env-compile(similartotheherokulabsfeature)https://github.com/musicglue/dokku-user-env-compile
Chefcookbooks:https://github.com/fgrehm/chef-dokku
评论