node.js - 如何使用 git 自动部署带有配置文件的网站?

标签 node.js git deployment server

我有一个用 NodeJS 编写的应用程序。 每次我在主分支上使用 git 推送代码时,代码都会自动部署到我的服务器上。一切工作正常。

但是我的 config 文件存在问题,该文件在本地服务器和远程服务器之间是不同的。
为了解决这个问题,我排除了 git config 文件并将其复制到 _config。 在 _config 文件中,我放置了所有配置服务器,当代码部署到服务器时,我自动创建了 $ cp _config config 以便获取良好的配置值.
该解决方案有效,但我想知道这是否是部署我的 config 文件的最佳解决方案,以及将其放在 Bitbucket 上是否安全。
例如,如果我想与某人共享我的存储库,我不能,因为他会看到我的配置。 还有另一种解决方案可以做到这一点吗?

如果您有任何建议,请提前致谢。

最佳答案

您的解决方案工作正常,尽管它对您来说可能有点粗糙。

配置通常由两种类型的数据组成:

  • 敏感数据(例如密码、 token 、凭据)
  • 其他所有内容(例如常量、路径、位置、网址)

与生产计算机相比,这些类型的配置变量在您的开发计算机上可能有所不同(开发 API URL 与产品 API URL;开发 API 密码与产品 API 密码)。

第二种类型的配置数据可以提交到您的 git 存储库中,如果您这样做,这可能是最简单的。您可以为开发创建 1 个文件,为生产创建 1 个文件,例如根据环境变量加载正确的文件。

第一种类型 - 密码 - 不应提交给 git。即使您有私有(private)存储库也不会。这太危险了。相反,您可以使用您所描述的机制,或者您可以将密码放入您在生产环境中设置的环境变量中。

关于node.js - 如何使用 git 自动部署带有配置文件的网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34567245/

相关文章:

node.js - 使用nodeJs/Adonis在heroku上部署: I'm getting 503 Status - Service Unvailable

node.js - 在 Protractor 中安装 geckodriver 时出错 - npm install --save geckodriver

ruby-on-rails - 如何将 nginx 配置为代理到 Rails 应用程序?这样我就不必说 domain.com :port

c# - 自述文件包含在设置项目 VS2005 中时不显示其内容?

javascript - setInterval导致内存溢出?

javascript - 类型错误 : data base object cannot be found

git - 我刚刚删除了一周的工作!如何撤消 git rm -r --cached?

混帐: "Warning: Changing a readonly file"

安卓工作室 "Error Running Git", 'Empty git --version output:'

java - 设置 Ruby/Java 构建/部署的最佳方式?