在OpenShift上部署现有的Node.js源码

问题描述:

我在Windows PC上创建了一个Node.js应用程序。现在我想在Openshift上部署这个应用程序。在OpenShift上部署现有的Node.js源码

我已经安装了rhc并设置了我的SSH key

经过多次尝试,我未能在Openshift上部署我的应用程序。

我在这个地址上创建Openshift一个App的Node.js:
http://webalves-javalinuxcode.rhcloud.com/

+0

你能提供更多细节吗?你是如何尝试部署它的?你得到了什么错误?你安装了'rhc'并创建了你的'ssh'键吗?您使用哪个命令行进行部署? – Tom

+0

Tom我也创建了ssh密钥......我可以通过ssh和sftp访问我的帐户。此外,我有在zip文件中的应用程序源。 –

我在使用的NodeJS和Postgres Openshift托管web应用程序。为了部署它,我使用了Openshift git仓库,它会在每次提交时触发部署。

这是documentation about Openshift deploy

一旦您安装了rhc并且已经设置了SSH key,我相信以下步骤可以帮助您部署它。

  1. 克隆通过Openshift为您创建git仓库项目:rhc git-clone <app_name>或手动创建您的git remote指向Openshift库

  2. 拆除并非creted为你的本地库文件夹中的所需的所有文件(Openshift从您的git repository文件夹内的项目可能为项目创建了一些默认的文件)

  3. 解压源

  4. 提交您的所有来源:git add .,然后git commit -am "Your commit message"

  5. 推代码Openshift:git push -f

这样做,必须触发部署过程中,你会看到它的控制台,如解释我上面插入的文档链接。

作为附加信息,您还需要对源代码进行一些更改。对于数据库访问,与任何其他资源一样,Openshift有许多您可以访问的environment variables。所以,如果你需要在运行中的NodeJS实现Openshift HTTP服务器,你需要做出一些改变,像这样:

的package.json

"scripts": { 
    "start": "node server.js" 
} 

server.js

var serverPort = process.env.OPENSHIFT_NODEJS_PORT || 8080; 
var serverIpAaddress = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'; 

var server = app.listen(serverPort, serverIpAaddress, function() { 
    logger.info("Starting application"); 
    logger.info("Starting HTTP server - port %s", server.address().port); 
}); 

希望它有帮助。