http://your_domain.com:app_specific_port_number如果选择“为应用程序使用虚拟主机命名”复选框,则可以使用虚拟主机访问您的应用程序:
http://app_name.your_domain.com单击“完成设置”按钮完成配置。
web: node app_name.js
npm init
这将询问你相当多的问题,并为您创建一个package.json文件。您必须返回并为您的应用程序手动添加一些依赖关系信息,以及描述您正在使用的引擎。这可能看起来像这样:
. . .
"version": "0.2.3",
"dependencies": {
"express": "3.1.x"
},
"engines": {
"node": "0.10.x",
"npm": "1.2.x"
},
"description": "a sample application for Dokku"
. . .
这两个段告诉Dokku需要为您的应用程序环境安装和配置它。
dokku plugin:install https://github.com/dokku/dokku-postgres.git
现在,我们有安装Dokku的PostgreSQL库。让我们为我们的应用程序创建一个数据库。 Dokku通过查找具有匹配名称的数据库,在部署时将应用程序与关联的数据库相链接。
我们将必须决定如何命名我们的应用程序(这将影响我们将访问它从如果使用虚拟主机的URL),在这里。使用以下命令部署数据库:
dokku postgres:create app_name
您将收到一条确认信息,如下所示:
-----> Starting container
Waiting for container to be ready
Creating container database
=====> Postgres container created: app_name
DSN: postgres://postgres:1f61e96c987fc06cc5e71e70baeee776@172.17.0.9:5432/app_name
这将告诉您使用此数据库所需的连接详细信息。我们可以随时通过键入以下内容获取此信息:
dokku postgres:info app_name
这个信息被用来创建一个环境变量称为DATABASE_URL
是在部署分配。
git clone https://github.com/tkalfigo/pigimon.git
输入目录以开始修改其内容:
cd pigimon
这个项目是在alpha阶段,并不是建立部署在Heroku或Dokku,所以有一些事情,我们需要修改。首先,没有“master”分支,只有一个“develop”分支。 Dokku需要一个master分支来部署。让我们做一个并切换到它:
git checkout -b master
我们可以看到,已经有一个上面提到的“package.json”文件。这是一个好的开始。然而,作者忘了一个依赖,将导致我们的构建失败目前。让我们添加它:
nano package.json
在配置文件的“dependencies”部分,我们需要添加一行,告诉Dokku任何版本的“jsdom”模块也是必需的。您可以将它插入到dependencies部分的任何位置,只要注意逗号:
. . .
"optimist": "~0.5.0",
"pg": "~1.1.2",
"jsdom": "*",
"underscore": "~1.4.4"
},
. . .
保存并关闭文件。
接下来我们需要做的是添加我们提到的“Procfile”作为一个要求。我们Procfile会很简单,只是告诉Dokku开始在app.js
文件来运行应用程序:
nano Procfile
web: node app.js
保存并关闭文件。
最后,我们需要对应用程序如何连接到数据库进行一些修改。正如我们提到的,该应用程序当前未配置为Heroku或Dokku部署,因此它不使用这两个软件创建的标准变量。我们需要有应用程序使用连接DATABASE_URL
我们的PostgreSQL数据库将会创建。
打开app.js
文件。
nano app.js
搜索指定如何连接到数据库的PostgreSQL连接命令。它应该看起来像这样:
pg.connect(CONFIG.CONNECTION_STRING, function(err, client, done) {
目前,该应用程序使用的配置值连接config.json
文件。 这是由表示CONFIG.CONNECTION_STRING
被传递到的值pg.connect
命令。
修改这个值,使用DATABASE_URL
变量。 由于这是一个环境变量,我们把它作为process.env.DATABASE_URL
:
pg.connect(process.env.DATABASE_URL, function(err, client, done) {
保存并关闭文件。
现在,我们的应用程序被修改,并应该具有运行成功所需的所有值。我们需要将我们的更改提交到git,以便它是最新的:
git add Procfile
git add .
git commit -m "Configure for Dokku"
现在,我们的应用程序已创建,我们可以将其推送到Dokku服务器。我们只需要添加Dokku服务器作为这个项目的远程。您可以命名为“远程名称”任何你想,但“dokku”是一个不错的选择。 “应用程序名”,必须选择你为你的数据库的名称相匹配:
git remote add remote_name dokku@dokku_server_domain:app_name现在,要部署,我们只需将我们的代码推送到Dokku服务器:
git push remote_name master
你应该看到相当多的输出,Dokku构建依赖和环境,然后部署你的应用程序。最后,你应该看到这样的:
-----> Releasing app_name ...
-----> app_name linked to postgres/app_name database
-----> Deploying app_name ...
-----> Cleaning up ...
=====> Application deployed:
http://app_name.domain_name.com
To dokku@domain_name.com:app_name
如果您访问给定的URL,您应该能够看到我们部署的示例应用程序:
dokku delete app_name
要删除关联的PostgreSQL数据库,您可以键入:
dokku postgres:delete app_name
关注云架构公众号
Linux入门
QQ交流群:308781113