包括不在存储库中的文件

这是一个普遍的问题,我从来没有必要部署我自己的代码,我不知道如何正确地做到这一点。

我的项目中有一个文件,它创build一个mongoose对象,并连接到一个远程的Mongo数据库(不是在openshift中创build的数据库)。 连接string包含我的用户名和密码,所以我把它设置为被git忽略,所以它不会被公开。

mongoose.connect( 'mongodb://$Username:$password@ds111111.mlab.com:49551/db_name' ); 

但是现在我遇到了一个问题,那就是当我从git源文件创build一个版本时,显然这个文件不存在,应用程序崩溃。

什么是正确的方式去做这件事?

有很多方法可以做你需要做的事情。 但是这里概述的build议在行业中是常用的。 configuration部分是你正在寻找特别。

它的要点是你应该把你的秘密存储在环境variables中。 这是一个堆栈溢出问题,可能会有所帮助。

你使用的是什么版本的OpenShift?

如果您正在讨论OpenShift 3,则可以在部署configuration中声明环境variables。 这些可以具有部署configuration本身中设置的环境的值,也可以使用单独的秘密对象,并从秘密中引用环境variables的值。 秘密可以作为一个文件被挂载到正在运行的容器中,应用程序可以从文件中读取凭据。