注:Dokku项目自本指南编写以来发生了重大变化。 以下说明可能无法反映Dokku项目的当前状态。
介绍
Dokku使得它易于部署和的方式,非常类似的Heroku在自己的服务器上管理Web应用程序。 除了DigitalOcean,它更快,更便宜,你有更多的控制。 现在DigitalOcean有一个一键应用程序创建一个Dokku Droplet,使它更容易拥有自己的私人应用程序平台在几分钟之内。
我们将向您展示开始分步说明有多么简单。 到最后,你将有一个运行在DigitalOcean Droplet上的Heroku风格的应用程序,通过Git部署,和一个Dokku实例准备更多。
在我们开始之前,请确保您有一个DigitalOcean帐户。 如果没有,请继续报名 。
第1步:创建Dokku Droplet
在你DigitalOcean控制面板上,按创建快捷批处理按钮,将要采取的创建屏幕。
Droplet主机名 :主机名标识的Droplet。 随意调用你的主机名你喜欢的任何东西。 我只打电话给我的“dokku”。
选择尺寸 :根据你有多少应用程序部署,您可能需要较大的大小Droplet。 然而,对于大多数目的,512MB的大小足以开始。 您可以随时更改它。
选择地区 :选择最接近该地区的你,还是将要访问您的应用程序的人。
选择图片 :这是重要的组成部分! 在“选择图像”下选择“应用程序”,然后选择“Dokku在Ubuntu 13.04”。
最后,您需要为Dokku安装一个SSH密钥,以通过Git push接受部署。 您可以在以后的步骤中为Dokku设置SSH密钥,但现在更容易为您的Droplet选择一个。 如果你没有任何 ,这里是一个伟大的教程。
现在点击“创建Droplet”按钮,我们会等待Droplet启动。
一旦你的Droplet准备好了,你会看到一个像这样的屏幕:
在此屏幕上查看IP地址? 在下一步中,您需要将该IP复制并粘贴到浏览器的地址栏中,以加载Dokku设置页。
第2步:设置Dokku
浏览你的Droplet的IP,你应该看到这样的屏幕:
管理员访问
如果您使用DigitalOcean SSH密钥与您的Droplet,它应该已经填写您的管理SSH公钥。 任何人用这个键设置可以部署和管理您的Dokku上的应用程序。 您可以稍后添加,但这一个是为你。 如果第一个框中没有键,您必须创建一个密钥对并粘贴到公钥中。 请记住,这里是 ,如果你忘了。
主机名配置
不幸的是,Dokku不知道你想要为你的应用程序使用什么域名。 没有域,您必须使用不同的端口号访问每个应用程序,如上面屏幕上的示例。 但是,大多数用户希望自己的应用作为自定义域的子域运行。 例如, myapp.progriumapps.com
。
为了有这个设置,你需要做三件事:
为您的域指向此IP设置2个DNS记录
一个。 首先,常规的A记录(
progriumapps.com
)
b。 其次,通配符A记录(*.progriumapps.com
)在Dokku设置屏幕上的主机名外地更改域名
检查说使用虚拟主机的命名框
对我来说,我的主机名配置现在看起来像这样:
如果你不确定如何实现DNS一步,请阅读本指南如何建立一个主机名与DigitalOcean 。
而已! 单击完成安装程序。 如果一切正常,它会带你到下一步是部署一个应用程序的Dokku README文件。
设置完成后,Dokku设置页面将不再可用,所以不要担心,如果你没有得到任何东西,当你再次浏览到你的IP。
第3步:部署应用程序!
现在为有趣的部分。 Dokku支持许多不同的语言,并遵循许多标准的应用程序模式。 如果你从来没有建立,可以在Dokku运行一个应用程序,你可以阅读我们的库文档了解如何让你的应用程序与Dokku工作。
我将部署一个示例应用程序,以便您可以看到它是如何工作的。 让我们使用一个Node.js示例应用程序。 这是可在Github上 ,如果你想用它来进行操作。
在使用git获得这个应用程序的一个新的克隆后,我们需要添加一个git远程,使用我们设置的主机名指向Dokku Droplet。 如果您正在部署自己的应用程序,还需要添加此远程。 从您的计算机上的应用程序的目录,你会运行这样:
git remote add dokku dokku@progriumapps.com:node-js-sample
如果您无法为主机名设置域而不是IP,则可以使用IP而不是域。 冒号后面的名称可以是任何名称,但它将是在子域中使用的名称,使用virtualhost命名来设置它。
现在我们可以通过推送到dokku远程部署我们的应用程序。 一定要包括分支:
git push dokku master
这将导致日志显示您的应用程序正在构建和部署,最终导致您可以浏览到的URL,并看到您的应用程序成功部署。 好极了!
下一步
尽管被许多人使用,Dokku仍然是一个早期的项目。 你可以阅读更多有关在使用Dokku 自述 ,很快就会有更深入的文档。 在那之前,有一个伟大的社区愿意帮助,如果你遇到问题。 您可以在Github上提交问题,或者在#dokku频道的Freenode上加入我们的IRC。
DigitalOcean是运行Dokku的理想主机,所以希望你喜欢与Dokku一起玩,并使用它来管理和部署您的Web应用程序。